Csharp/C#教程:.Net CLR如何在内部实现“接口”?分享


.Net CLR如何在内部实现“接口”?

只是好奇.NET CLR如何在内部处理接口?

Q1]当CLR遇到类似的情况时会发生什么:

简单的界面示例。 (以下同样使用。)

interface ISampleInterface { void SampleMethod(); } class ImplementationClass : ISampleInterface { // Explicit interface member implementation: public void SampleMethod() { // Method implementation. } static void Main() { //Declare an interface instance. ISampleInterface mySampleIntobj = new ImplementationClass(); // (A) // Call the member. mySampleIntobj.SampleMethod(); // Declare an interface instance. ImplementationClass myClassObj = new ImplementationClass(); // (B) //Call the member. myClassObj.SampleMethod(); } } 

Q2:在上面的例子中, (A)(B)如何区分?

问题3: 通用接口的处理方式是否不同?

(当问这些基本问题时,感觉就像一个菜鸟……反正….)

大家好。

这些代码位几乎没有差别。 两者最终都调用相同的function。 通过类类型调用方法可能会有一些性能上的好处。

如果您想了解这些内容的实现方式,请查看虚拟方法表 。

有关更深入的信息,请参阅此

与直接使用类类型进行实例化相比,在创建对象引用时使用接口被认为是更好的做法。 这是针对接口原理的编程。

这意味着您可以使用dependency injection等方式更改在运行时实现相同接口的具体类,甚至可以是reflection。 与编程到具体类型相比,如果编程到接口,则不需要更改代码。

上述就是C#学习教程:.Net CLR如何在内部实现“接口”?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1034865.html

(0)
上一篇 2022年1月19日
下一篇 2022年1月19日

精彩推荐