首页 / C# / c# – 编辑界面时调用了什么?
c# – 编辑界面时调用了什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 编辑界面时调用了什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1345字,纯文字阅读大概需要2分钟。
内容图文
![c# – 编辑界面时调用了什么?](/upload/InfoBanner/zyjiaocheng/764/a1f64a4d9caf41318833dde6ae6ad821.jpg)
我正在浏览LitJSON库.在代码中有很多段,如
public class JsonData : IJsonWrapper, IEquatable<JsonData>
#region ICollection Properties
int ICollection.Count {
get {
return Count;
}
}
#end region
对于我知道覆盖/重载如何工作的方法,但在上面的示例中,代码为:int ICollection.Count
我不熟悉方法签名的格式.编码器是否试图明确声明其ICollection.Count接口?
你能解释一下这是什么“被称为”(它是否仍然覆盖?).
解决方法:
它被称为explicit interface implementation.主要用于消除不同接口中存在同名的成员的歧义,这些接口也需要不同的实现.
考虑一下你
interface ISomething1
{
void DoSomething();
}
interface ISomething2
{
void DoSomething();
}
class MyClass : ISomething1, ISomething2
{
void ISomething1.DoSomething()
{
//Do something
}
void ISomething2.DoSomething()
{
//Do something else
}
}
如果没有显式接口实现,您将无法为我们实现的接口提供不同的DoSomething实现.
如果要实现某个接口,并且希望将其从客户端隐藏(在某种程度上),则可以使用显式实现. Array类显式实现了IList接口,这就是它隐藏IList.Add,IList.Remove等的方法.但是如果你将它转换为IList类型,你可以调用它.但在这种情况下你最终会得到一个例外.
通过显式实现实现的成员不能通过类实例(甚至在类中)可见.您需要通过接口实例访问它.
MyClass c = new MyClass();
c.DoSomething();//This won't compile
ISomething1 s1 = c;
s1.DoSomething();//Calls ISomething1's version of DoSomething
ISomething2 s2 = c;
s2.DoSomething();//Calls ISomething2's version of DoSomething
内容总结
以上是互联网集市为您收集整理的c# – 编辑界面时调用了什么?全部内容,希望文章能够帮你解决c# – 编辑界面时调用了什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。