无法从C#中继承System.Delegate或System.MulticastDelegate.只要您声明标准的"运行时管理"方法,就可以在MSIL中完成它.但是,每次我在类型中添加"cil managed"方法时,我都会得到:
System.TypeLoadException:运行时实现的委托方法的非法定义.
是否可以扩展Delegate/MulticastDelegate?
在C#中没有自己的自定义代码.从C#3.0规范的10.1.4节:
直接基类的类类型的不能是以下任一类型的:
System.Array,System.Delegate,System.MulticastDelegate,System.Enum,或System.ValueType.此外,泛型类声明不能System.Attribute用作直接或间接基类.
但是,每次创建委托类型时,都会自动派生MulticastDelegate.
从ECMA-335,第8.9.3节:
虽然在大多数情况下,代表似乎只是另一种用户定义的类,但它们受到严格控制.这些方法的实现由VES提供,而不是用户代码.可以在委托类型上定义的唯一其他成员是静态或实例方法.
这听起来像是禁止施工人员.我个人使用普通类型的静态方法.
| 归档时间: |
|
| 查看次数: |
2660 次 |
| 最近记录: |