我在 C# 中工作,我有点怀疑。
直接调用委托或使用方法有区别Invoke
吗?
例如:
Func<string> @Func = () => "Test";
var result = @Func.Invoke();
var result2 = @Func();
Console.WriteLine("{0},{1}",result,result2);
// El resultado es Test,Test
@Func.Invoke();
线和线有区别@Func();
吗?
如果有这样的差异,应该分别在什么情况下使用?
在这些情况下,最好看看编译器在将代码转换为 IL 时做了什么:
如您所见, 的 IL 与 的 IL
@Func.Invoke()
完全相同@Func()
:所以两者完全相同。
我建议你看看
Func() 与 Func.Invoke()
有一个有趣的答案的参考,我从中得出
调用直接方法
翻译
使用调用
翻译