Tengo un diccionario DICOM que contiene un conjunto de objetos derivados de DataElement. El diccionario tiene un int como clave y DataElement como propiedad. Mi diccionario DICOM contiene una esta propiedad [] donde puedo acceder al DataElement, así:¿Puedo tener una propiedad genérica this []?
public class DicomDictionary
{
Dictionary<int, DataElement> myElements = new Dictionary<int, DataElement>();
.
.
public DataElement this[int DataElementTag]
{
get
{
return myElements[int];
}
}
}
Un problema ahora es que tengo diferentes tipos DataElement todos los derivados de DataElement, como DataElementSQ, DataElementOB y así sucesivamente. Lo que quería hacer ahora es lo siguiente para hacer la escritura en C# un poco más fácil:
public T this<T>[int DataElementTag] where T : DataElement
{
get
{
return myElements[int];
}
}
Pero esto no es realmente posible. ¿Hay algo que me he perdido? Por supuesto que podría hacerlo con el método Getter, pero sería mucho mejor tenerlo de esta manera.
No puede tener propiedades genéricas (incluidos los indexadores) http://stackoverflow.com/questions/494827/why-it-is-not-posible-to-define-generic-indexers-in-net –
Ya sea que lo creas o no, lo que sugieres hacer sería confuso para usar y leer, imo. – Marc