C#接口。隐式实现与显式实现

C#接口。隐式实现与显式实现

实现接口的区别是什么?隐式明示在C#?

什么时候应该使用隐式,什么时候应该使用显式?

对其中一种或另一种有什么利弊?


微软的官方指南(第一版)框架设计指南)指出,不建议使用显式实现。,因为它会给代码带来意想不到的行为。

我认为这个准则非常在国际奥委会之前的时间内有效。,当您不将事物作为接口传递时。

有人也能触及这个方面吗?


莫回无
浏览 670回答 3
3回答

千巷猫影

隐式是通过类中的成员定义接口时。显式是当您在接口上的类中定义方法时。我知道这听起来很混乱,但我的意思是:IList.CopyTo将被隐式执行为:public void CopyTo(Array array, int index){     throw new NotImplementedException();}并明确规定如下:void ICollection.CopyTo(Array array, int index){     throw new NotImplementedException();}不同之处在于,当类作为类强制转换时,以及在其强制转换为接口时,您创建的类都可以通过您创建的类进行隐式访问。显式实现只允许当强制转换为接口本身时才能访问它。MyClass myClass = new MyClass(); // Declared as concrete classmyclass.CopyTo //invalid with explicit((IList)myClass).CopyTo  //valid with explicit.我使用显式主要是为了保持实现的清洁,或者当我需要两个实现时。但不管怎么说我很少用它。我相信有更多的理由使用它/不使用它,其他人将张贴。见下一篇文章在这个线索背后每个人都有出色的推理能力。
打开App,查看更多内容
随时随地看视频慕课网APP