Tôi có một từ điển DICOM có chứa một tập hợp các đối tượng tất cả bắt nguồn từ DataElement. Từ điển có một int là một khóa, và DataElement là tài sản. điển DICOM My chứa một [] bất động sản này, nơi tôi có thể truy cập vào DataElement, như thế này:Tôi có thể có thuộc tính [] chung này không?
public class DicomDictionary
{
Dictionary<int, DataElement> myElements = new Dictionary<int, DataElement>();
.
.
public DataElement this[int DataElementTag]
{
get
{
return myElements[int];
}
}
}
Một vấn đề bây giờ là tôi có các loại DataElement khác nhau tất cả bắt nguồn từ DataElement, như DataElementSQ, DataElementOB và vân vân. Những gì tôi muốn làm bây giờ là sau đây để làm cho văn bản trong C# một chút dễ dàng hơn:
public T this<T>[int DataElementTag] where T : DataElement
{
get
{
return myElements[int];
}
}
Nhưng điều này là không thực sự có thể. Có điều gì tôi đã bỏ lỡ? Tất nhiên tôi có thể làm điều đó với phương pháp Getter, nhưng sẽ tốt hơn nếu có nó theo cách này.
Bạn không thể có các thuộc tính Chung (bao gồm các chỉ mục) http://stackoverflow.com/questions/494827/why-it-is-not-posible-to-define-generic-indexers-in-net –
Cho dù bạn có tin hay không, những gì bạn đang đề xuất làm sẽ gây nhầm lẫn để sử dụng và đọc, imo. – Marc