Umu*_*ğlu 6 c# inheritance interface
据我所知,除了.net中的接口外,所有内容都来自于对象.但是我注意到当我按下"." 在界面名称出现Equals方法之后.当我按F12 for equals方法时,它会指向对象类中的equals方法.如果接口不是从对象类派生的,那么equals方法来自哪里?
Jon*_*eet 14
从C#4规范的第13.2节:
请注意,严格来说,类对象中的成员不是任何接口的成员(第13.2节).但是,类对象中的成员可通过任何接口类型(第7.4节)中的成员查找获得.
第7.4节:
- 首先,确定一组名为N的可访问成员:
- ...
- 否则,该集由T中名为N的所有可访问(§3.5)成员组成,包括继承成员和对象中名为N的可访问成员.[...]
第7.4.1节:
出于成员查找的目的,类型T被认为具有以下基本类型:
...
•如果T是接口类型,则T的基类型是T的基接口和类类型对象.
基本上它是一个软糖,让编译器理解在执行时object总是真正可用的成员,即使它们实际上不是接口所涉及的表达式类型的成员.
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |