请考虑以下代码:
var result = IDisposable.Dispose is object; //result equals false
Run Code Online (Sandbox Code Playgroud)
对我(以及我的同事实际上引起我的注意)这个代码的编译感到惊讶.
首先,我的想法IDisposable.Dispose是以某种方式转换为兼容delegate.但结果必须是true因为当然delegate可以分开object.
寻找到本说明书中,我发现方法组具有特殊由编译器处理(在的上下文中是操作):
如果E是方法组...结果为false.
纯粹出于好奇,为什么它在规范中?为什么编译器允许它?为什么不抛出编译时错误(比如匿名函数)?
更新:
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |