Esto probablemente no es posible, pero tengo esta clase:C# - tipos genéricos múltiples en una sola lista
public class Metadata<DataType> where DataType : struct
{
private DataType mDataType;
}
No hay más que eso, pero vamos a mantenerlo simple. El tipo genérico (DataType) está limitado a los tipos de valor por la instrucción where. Lo que quiero hacer es tener una lista de estos objetos de metadatos de diferentes tipos (DataType). Tales como:
List<Metadata> metadataObjects;
metadataObjects.Add(new Metadata<int>());
metadataObjects.Add(new Metadata<bool>());
metadataObjects.Add(new Metadata<double>());
¿Esto es posible?
Me pregunto si hay algún beneficio real para los enfoques en las respuestas a continuación en comparación con el uso de una 'Lista
Tanto la clase base abstracta como la interfaz proporcionan un grado de control al restringir el tipo de elementos que se pueden agregar a la lista. Tampoco puedo ver cómo el boxeo entra en esto. – 0b101010
Por supuesto, si usa .NET v4.0 o superior, entonces la covarianza es la solución. 'List>' hace el truco. –
0b101010