博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
How .NET run-time determines which member to invoke in a interface involving hiearchy
阅读量:3976 次
发布时间:2019-05-24

本文共 1429 字,大约阅读时间需要 4 分钟。

C# interface is very useful and powerful. The major difference in interface between C# and older languages such as java is C# introduced explicit member implementation, which can also cause considerable confusion and complexity. 

In this article I want to use simplest words to hopefully cover how an actual interface implementing method  is located for the invocation of a method on an instance of a class that implements some interfaces at arbitrary points in its inheritance hierarchy.

The rule for the programmer to know how it works is as simple as follows,

1. Find out what the instance actually is (the most derived class that it instantiates)

2. From this point go up until you hit a class that implements the queried interface or its descendants

3. Then class must implement the member in some way,

    - First if it is explicitly implemented, this member is going to be called

    - Or if it is implicitly implemented, then the member would be called, and if it's virtual/override method, it will be called as it is as such a method.

    - Otherwise, it has to be implemented by its base classes, then go up and find it in the nearest base class which has exactly the same signature. Still the explicitly implemented one takes the precedence, but search through the classes stops whenever a signature match is found.

The above is also of course how the compiler looks at the code.

There should be more, but can't remember. Add later.

   

转载地址:http://gheki.baihongyu.com/

你可能感兴趣的文章
dbus基础--创建dbus客户端与服务端的实例参考
查看>>
DBus如何使用原始DBus库传送和接收数据
查看>>
认识dbus的基本概念
查看>>
dbus-glib 安装环境搭建
查看>>
交叉编译dbus文章汇总
查看>>
dbus启动问题
查看>>
选择system bus还是session bus?
查看>>
dbus的hello world
查看>>
一个不错的arm入门建议
查看>>
一篇dbus移植的点点滴滴
查看>>
linux系统中如何查看日志 (常用命令)
查看>>
推荐8个在线调试代码的网站---优秀开发工具
查看>>
测试网站速度的8款免费工具推荐
查看>>
推荐25个提高网站可用性和转化率的工具
查看>>
12款很棒的浏览器兼容性测试工具推荐
查看>>
LIBXML2库使用指南
查看>>
xml本质讨论
查看>>
libxml2如何解析xml格式的字符串
查看>>
XML文件的解析--非常详细的libxml库函数解释说明并附带实例
查看>>
Linux服务器监控方案参考
查看>>