tengo algo como:C# interface specfying un retorno de tipo genérico
public interface IExample
{
int GetInteger()
T GetAnything(); //How do I define a function with a generic return type???
^^^^^
}
Es esto posible ???
tengo algo como:C# interface specfying un retorno de tipo genérico
public interface IExample
{
int GetInteger()
T GetAnything(); //How do I define a function with a generic return type???
^^^^^
}
Es esto posible ???
Si toda la interfaz debe ser genérica:
public interface IExample<T>
{
int GetInteger();
T GetAnything();
}
Si sólo el método tiene que ser genérica:
public interface IExample
{
int GetInteger();
T GetAnything<T>();
}
public interface IExample<T>
{
int GetInteger()
T GetAnything();
}
Tadaa :)!
O, como alternativa, puede simplemente devolver System.Object y convertirlo en lo que desee.
Si no quieres toda la interfaz (IExample) para ser genérica, a continuación, usted puede hacer esto también
public interface IExample
{
int GetInteger();
T GetAnything<T>();
}
solo para aclarar, si declara el método de esta manera en una interfaz, cuando lo implemente en la clase que implementa la interfaz, deberá mantenerlo como un método genérico y solo podrá especificar su tipo cuando llamar al método en el objeto instanciado de la clase que implementa la interfaz, no en la clase misma – daleotar
+1. Me olvidé por completo de que el método puede tener su propio parámetro de tipo :) – flai
Si usa .NET 4.0 es mejor usar la covarianza si es posible: interfaz pública Ejemplo I, T GetAnything (); –
dvvrd
¿cómo implemento la función de interfaz? – River