我四處尋找答案,但找不到任何相關的東西。在使用Action
時,我學會了使用Action.Invoke()
,但實際上您是否需要使用.Invoke
?您是否需要使用Invoke on Action?
說我有這樣的動作:
Action<int> action = x =>
{
Console.WriteLine(x + 1);
};
難道我用:
action.Invoke(2);
或
action(2);
有什麼區別?
感謝
我四處尋找答案,但找不到任何相關的東西。在使用Action
時,我學會了使用Action.Invoke()
,但實際上您是否需要使用.Invoke
?您是否需要使用Invoke on Action?
說我有這樣的動作:
Action<int> action = x =>
{
Console.WriteLine(x + 1);
};
難道我用:
action.Invoke(2);
或
action(2);
有什麼區別?
感謝
它同樣的事情,action(2);
基本要求action.Invoke(2);
編譯器轉換action(2)
成action.Invoke(2);
個人而言,我通常使用的快捷方式的形式,但只是偶爾爲之它 最終顯示調用Invoke更具可讀性。例如,您可能有: :
if (callAsync)
{
var result = foo.BeginInvoke(...);
// ...
}
else
{
foo.Invoke(...);
// ...
}
後者純粹是因爲以前的語法糖 - 沒有任何區別(兩者也是同步的)。
很高興能夠像一種方法而不是中介Invoke
調用運行的行動。對於異步調用,有BeginInvoke
。