与c#中的委托声明的差异

Eve*_*rts 5 c# delegates

可能重复:
为什么使用"new DelegateType(Delegate)"?
新的Thread(void Target())和新的Thread(新的ThreadStart(void Target()))有什么区别?

所以我经历了一些委托,并以某种方式获得了整个想法.现在,我看到处都像这样:

public delegate void Deleg();
Deleg deleg = new Deleg(FunctionName);

deleg();
Run Code Online (Sandbox Code Playgroud)

我认为这会创建一个委托对象,其函数指向作为参数传递给构造函数.

现在,我也可以这样做:

public delegate void Deleg();
public Deleg deleg;  

deleg = FunctionName;
deleg();
Run Code Online (Sandbox Code Playgroud)

这个似乎只创建一个引用,并传递函数的地址.这工作原理相同,并具有所有委托功能.

但是现在,无论事实上我在第二个例子中还有一行,我实际上是否会因为第一个在教程中更受欢迎而失去或获得一些东西?

Bri*_*sen 5

打字的收益少一点.编译器现在比最初更聪明,因此它可以隐式执行方法组转换,这就是您不必再进行的操作new Deleg(FunctionName)了.


归档时间:

查看次数:

138 次

最近记录:

12 年,10 月 前