是否需要使用“在操作时调用”
本文关键字:操作 调用 是否 | 更新日期: 2023-09-27 18:32:01
我四处寻找答案,但找不到任何相关内容。我已经学会了在使用Action
时使用Action.Invoke()
,但是您真的需要使用.Invoke
吗?
假设我有这个动作:
Action<int> action = x =>
{
Console.WriteLine(x + 1);
};
我是否使用:
action.Invoke(2);
或
action(2);
有什么区别?
谢谢
它是一样的,action(2);
基本上调用action.Invoke(2);
编译器将action(2)
转换为action.Invoke(2);
来自Jon Skeet的帖子:
就个人而言,我通常使用快捷方式表单,但只是偶尔使用 最终,显式调用 Invoke 更具可读性。例如 您可能有:
if (callAsync)
{
var result = foo.BeginInvoke(...);
// ...
}
else
{
foo.Invoke(...);
// ...
}
后者对于前者来说纯粹是句法糖 - 没有区别(两者都是同步的)。
能够像方法一样运行操作而不是中间Invoke
调用真是太好了。
Invoke
具有异步调用的对应BeginInvoke
。