Aym*_*ahi 16 c# delegates reference ref
我遇到了一段使用委托的C#代码,并通过引用将该函数传递给委托......
delegate bool MyDel(int x);
static bool fun(int x) {
return x < 0;
}
public static void Main() {
var d1 = new MyDel(fun); // what I usually write
var d2 = new MyDel(ref fun);
}
Run Code Online (Sandbox Code Playgroud)
编译器没有抱怨并且建立了项目.我在运行一些测试用例时没有发现任何差异,这种语法与通常的语法有什么不同?
正如InBetween所提到的,似乎这种语法也是有效的(而且它的意义更小)
var d3 = new MyDel(out fun);
Run Code Online (Sandbox Code Playgroud)
小智 1
看来,在这种情况下,通过 ref/out/normal-way 没有区别,我试图看看 ILDASM 是否有任何区别,但没有区别......
delegate void MyDel();
static void Main(string[] args)
{
MyDel myDel = new MyDel(Mtd1);
MyDel d3 = new MyDel(ref Mtd1);
MyDel d1 = new MyDel(ref Mtd2);
MyDel d2 = new MyDel(out Mtd3);
}
Run Code Online (Sandbox Code Playgroud)