是否需要使用“在操作时调用”

本文关键字:操作 调用 是否 | 更新日期: 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