Ответ 1
Нет никакой разницы. Второй - это сокращение от Invoke
, предоставляемое компилятором. Они скомпилируются с тем же ИЛ.
Мне интересно узнать о различиях между вызовом Func напрямую и использованием Invoke(). Есть ли разница? Является первым, синтаксическим сахаром и вызовами Invoke() под любым способом?
public T DoWork<T>(Func<T> method)
{
return (T)method.Invoke();
}
против
public T DoWork<T>(Func<T> method)
{
return (T)method();
}
Или я ошибаюсь полностью:) Спасибо.
Нет никакой разницы. Второй - это сокращение от Invoke
, предоставляемое компилятором. Они скомпилируются с тем же ИЛ.
Invoke хорошо работает с новым оператором распространения С# 6, теперь вы можете сделать
T result = method?.Invoke();
вместо
T result = method != null ? method() : null;