tresult parameter method generic examples ejemplo c# generics

c# - parameter - Usando tipos de retorno nulo con nuevas Func<T, TResult>



send a method as parameter c# (4)

Estoy usando un delegado anónimo en mi código que llama a esta función de ejemplo:

public static int TestFunction(int a, int b) { return a + b; }

El delegado se ve así:

var del = new Func<int, int, int>(TestFunction);

Mi pregunta es: ¿cómo se especifica un tipo de retorno void para TResult ? Lo siguiente no funciona:

public static void OtherFunction(int a, string b) { ... } var del = new Func<int, string, void>(OtherFunction);


Necesitas Action <T> si no quieres devolver algo


Si no hay un tipo de retorno, desea Action<int,string> :

var del = new Action<int, string>(OtherFunction);

o solo:

Action<int, string> del = OtherFunction;


Tienes que usar Action <T> si quieres devolver el void.


Use Action en lugar de Func si no necesita ningún valor de retorno

public void InvokeService<T>(Binding binding, string endpointAddress, Action<T> invokeHandler) where T : class { T channel = FactoryManager.CreateChannel<T>(binding, endpointAddress); ICommunicationObject communicationObject = (ICommunicationObject)channel; try { invokeHandler(channel); } finally { try { if (communicationObject.State != CommunicationState.Faulted) { communicationObject.Close(); } } catch { communicationObject.Abort(); } } }