Preguntas etiquetadas con generics

167
Func <T> sin parámetro

¿Puedo pasar un método con un parámetro de salida como Func? public IList<Foo> FindForBar(string bar, out int count) { } // somewhere else public IList<T> Find(Func<string, int, List<T>> listFunction) { } Func necesita un tipo para que out no se compile allí, y llamar a...

163
¿Qué es la reificación?

Sé que Java implementa el polimorfismo paramétrico (genéricos) con borrado. Entiendo lo que es borrar. Sé que C # implementa polimorfismo paramétrico con la reificación. Sé que eso puede hacerte escribir public void dosomething(List<String> input) {} public void dosomething(List<Int>...

159
C # Crear nueva T ()

Puedes ver lo que intento (pero no puedo) hacer con el siguiente código: protected T GetObject() { return new T(); } Cualquier ayuda sería muy apreciada. EDITAR: El contexto fue el siguiente. Estaba jugando con una clase de controlador personalizado para todos los controladores, con métodos...

153
C #: múltiples tipos genéricos en una lista

Probablemente esto no sea posible, pero tengo esta clase: public class Metadata<DataType> where DataType : struct { private DataType mDataType; } Hay más, pero seamos simples. El tipo genérico (DataType) está limitado a los tipos de valor mediante la instrucción where. Lo que quiero hacer...

151
Definición de Java Enum

Pensé que entendía bastante bien los genéricos de Java, pero luego encontré lo siguiente en java.lang.Enum: class Enum<E extends Enum<E>> ¿Alguien podría explicar cómo interpretar este tipo de parámetro? Puntos de bonificación por proporcionar otros ejemplos de dónde se podría usar un...

150
Mapa de Java equivalente en C #

Estoy tratando de mantener una lista de elementos en una colección con una clave de mi elección. En Java, simplemente usaría Map de la siguiente manera: class Test { Map<Integer,String> entities; public String getEntity(Integer code) { return this.entities.get(code); } } ¿Hay una...

147
¿Cuál es la diferencia entre <? super E> y <? extiende E>?

¿Cuál es la diferencia entre <? super E>y <? extends E>? Por ejemplo, cuando echas un vistazo a la clase, java.util.concurrent.LinkedBlockingQueuehay la siguiente firma para el constructor: public LinkedBlockingQueue(Collection<? extends E> c) y para uno por el método: public...