tipos metodos listas genericos generico genericas constructores c# api generics api-design nul

metodos - Genéricos de C#: si T es un tipo de retorno, ¿también puede ser anulado? ¿Cómo puedo combinar estas interfaces juntas?



metodos genericos c# (2)

Tengo la siguiente interfaz que devuelve el parámetro genérico de tipo T utilizando una devolución de llamada ...

public interface IDoWork<T> { T DoWork(); }

sin embargo, también tengo la siguiente interfaz, pero no invocará una devolución de llamada ya que devuelve void.

public interface IDoWork { void DoWork(); }

¿Puedo combinar estas dos interfaces y usar la lógica de tiempo de ejecución para determinar la diferencia? ¿Cómo puedo hacer eso?


Desafortunadamente, no se pueden combinar.

Puede ver esto en el marco, por eso hay una clase de Task y Task<T> , por ejemplo.

Dicho esto, a menudo puede compartir implementaciones en este tipo de escenario utilizando IDoWork<object> y pasando null para los valores, etc.


el tipo de retorno es una parte de la firma del método, por lo que T DoWork () y void DoWork () son diferentes, y void no es un tipo y no es un null . Es una indicación de que no hay nada en la pila de evaluación en el retorno del método.