Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我很好奇Func<T>直接调用 a 与使用Invoke()它之间的区别。有区别吗?无论如何,第一个语法糖和调用是Invoke()在下面吗?
Func<T>
Invoke()
public T DoWork<T>(Func<T> method) { return (T)method.Invoke(); }
对比
public T DoWork<T>(Func<T> method) { return (T)method(); }
还是我完全走错了路?
根本没有区别。第二个只是Invoke编译器提供的简写。它们编译为相同的 IL。
Invoke
Invoke 适用于新的 C# 6 空传播运算符,现在您可以执行
T result = method?.Invoke();
代替
T result = method != null ? method() : null;