parameter - generic delegates in c#
Func<T>() vs Func<T>.Invoke() (2)
Invoke funciona bien con el nuevo operador de propagación nula C # 6, ahora u puede hacer
T result = method?.Invoke();
en lugar de
T result = method != null ? method() : null;
Tengo curiosidad acerca de las diferencias entre llamar a un Func directamente vs usar Invoke () en él. Hay una diferencia ? ¿Está el primer azúcar sintáctico y se llama Invocar () debajo de todos modos?
public T DoWork<T>(Func<T> method)
{
return (T)method.Invoke();
}
vs
public T DoWork<T>(Func<T> method)
{
return (T)method();
}
O estoy en el camino equivocado por completo :) Gracias.
No hay diferencia en absoluto. El segundo es solo una abreviatura de Invoke
, proporcionada por el compilador. Se compilan a la misma IL.