gpt4 book ai didi

c# - 通过 ref 将函数传递给委托(delegate)有区别吗?

转载 作者:可可西里 更新时间:2023-11-01 03:11:22 26 4
gpt4 key购买 nike

我发现了这段使用委托(delegate)并通过引用将函数传递给委托(delegate)的 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);
}

编译器没有提示,并且构建了项目。我在运行一些测试用例时没有发现任何区别,这种语法与通常的语法有什么不同吗?

更新

正如 InBetween 所提到的,似乎这种语法也是有效的(而且它更没有意义)

var d3 = new MyDel(out fun);

最佳答案

看来,在这种情况下,通过 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);
}

enter image description here

关于c# - 通过 ref 将函数传递给委托(delegate)有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com