Func<T>() vs Func<T>.Invoke()
本文关键字:gt Func lt Invoke vs | 更新日期: 2023-09-27 18:11:40
我很好奇直接调用Func<T>
与使用Invoke()
之间的差异。有区别吗?是第一个语法糖和调用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与新的c# 6 null传播操作符一起工作得很好,现在您可以
T result = method?.Invoke();
代替
T result = method != null ? method() : null;