kni*_*ttl 15 c# events delegates
只是出于好奇:是否可以在C#中定义事件而无需定义委托类型?
就像是 public event (delegate void(int)) EventName
Mar*_*k H 18
内置了泛型委托类型,Action<>并且Func<>Action返回void.每个泛型类型参数是要传递给委托的参数的类型类型.例如
public event Action<int> EventName;
Run Code Online (Sandbox Code Playgroud)
此外,还有一个通用EventHandler<T>符合传递Object sender和使用EventArgs类型的约定.
不,这是不可能的;ECMA-334 § 17.7 规定:
事件声明的类型应为委托类型(第 11.2 节)
和 § 11.2 定义:
delegate-type:
type-name
Run Code Online (Sandbox Code Playgroud)
但是,从 C# 3 开始,您可以使用各种预定义的泛型类型,例如Action<int>,您几乎不必定义自己的委托类型。
| 归档时间: |
|
| 查看次数: |
7360 次 |
| 最近记录: |