编辑界面的时候叫什么?我正在浏览LitJSON库。在代码中有很多段,比如publicclassJsonData:IJsonWrapper,IEquatable#regionICollectionPropertiesintICollection.Count{get{returnCount;}}#endregionformethods我知道覆盖/重载是如何工作的,但是在上面的例子中,代码是:intICollection.Count我不熟悉方法签名的格式。编码器是否试图显式声明其ICollection.Count接口?你能解释一下这是什么“叫”吗(它还在被重写吗?)。它称为显式接口实现。主要用于消除不同接口中具有相同名称的成员的歧义,这些接口也需要不同的实现。考虑你的接口ISomething1{voidDoSomething();}interfaceISomething2{voidDoSomething();}classMyClass:ISomething1,ISomething2{voidISomething1.DoSomething(){//Dosomething}voidISomething2.DoSomething(){//Dosomethingelse}}如果没有明确的接口实现,你将无法提供不同的接口我们实现的接口的DoSomething实现。如果您正在实现一个接口并希望(在某种程度上)对客户端隐藏它,您可以使用显式实现。Array类显式实现了IList接口,这就是它隐藏IList.Add、IList.Remove等方法的方式。但是如果你将它转换为IList类型,你可以调用它。但在这种情况下,您最终会遇到异常。通过显式实现实现的成员对于类实例(甚至在类内)是不可见的。您需要通过接口实例访问它。MyClassc=newMyClass();c.DoSomething();//这不会编译ISomething1s1=c;s1.DoSomething();//调用ISomething1的DoSomething版本ISomething2s2=c;//调用ISomething2版本的DoSomething这就是所谓的ExplicitInterfaceImplementation。它仅用于公开指定接口实例的属性。如果声明的变量恰好是ICollection类型,则上面提供的示例将仅公开Count属性。庄家只会亮出他手上的一张牌,而您将能够看到您的两张牌,因此我们的牌需要根据客户指定的界面有不同的行为。以上就是C#学习教程:编辑界面时调用什么?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——publicinterfaceIHand{ListCurrentHand{get;}}publicinterfaceIDealerHand:IHand{}publicinterfaceIPlayerHand:IHand{}publicclassHand:IDealerHand,IPlayerHand{privateListcardsHeld;//这里的实现将确保只显示庄家的一张牌。列出IDealerHand.CurrentHand{get{returncardsHeld.Take(1);}}//此处的实现将确保公开所有卡片。列出IPlayerHand.CurrentHand{get{returncardsHeld;}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
