我很好奇直接调用Func和使用Invoke()之间的区别.有区别吗?是第一个,语法糖,并在下面调用Invoke()?
public T DoWork<T>(Func<T> method)
{
return (T)method.Invoke();
}
Run Code Online (Sandbox Code Playgroud)
VS
public T DoWork<T>(Func<T> method)
{
return (T)method();
}
Run Code Online (Sandbox Code Playgroud)
或者我完全走错了轨道:)谢谢.
Jon*_*eet 99
根本没有区别.第二个只是Invoke
编译器提供的简写.他们编译成同一个IL.
san*_*uro 12
调用适用于新的C#6空传播运算符,现在你可以做到
T result = method?.Invoke();
Run Code Online (Sandbox Code Playgroud)
代替
T result = method != null ? method() : null;
Run Code Online (Sandbox Code Playgroud)