gpt4 book ai didi

c# - 我可以拥有一个通用的 this[] 属性吗?

转载 作者:太空狗 更新时间:2023-10-29 20:14:35 27 4
gpt4 key购买 nike

我有一个 DICOM 字典,其中包含一组全部派生自 DataElement 的对象。字典有一个 int 作为键,DataElement 作为属性。我的 DICOM 字典包含一个 this[] 属性,我可以在其中访问 DataElement,如下所示:

public class DicomDictionary
{
Dictionary<int, DataElement> myElements = new Dictionary<int, DataElement>();
.
.
public DataElement this[int DataElementTag]
{
get
{
return myElements[int];
}
}
}

现在的问题是我有不同的 DataElement 类型,它们都派生自 DataElement,例如 DataElementSQ、DataElementOB 等等。我现在想做的是使在 C# 中的编写更容易一些:

 public T this<T>[int DataElementTag] where T : DataElement
{
get
{
return myElements[int];
}
}

但这实际上是不可能的。我错过了什么吗?当然,我可以使用 Getter 方法来完成,但是这样会更好。

最佳答案

最好的选择是要么使用泛型方法(而不是索引器),要么让你的类是泛型的(在这种情况下,索引器将绑定(bind)到类的泛型类型)。 C# 中不允许使用您所描述的通用索引器。

关于c# - 我可以拥有一个通用的 this[] 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com