首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能有一个泛型的this[]属性吗?

我能有一个泛型的this[]属性吗?
EN

Stack Overflow用户
提问于 2011-08-13 00:09:09
回答 4查看 7.6K关注 0票数 7

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

代码语言:javascript
运行
复制
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#编写代码更容易一些:

代码语言:javascript
运行
复制
 public T this<T>[int DataElementTag] where T : DataElement
 {
   get
   {
      return myElements[int];
   }
 }

但这是不可能的。我是不是漏掉了什么?当然,我也可以使用Getter方法,但这样做会更好。

EN

Stack Overflow用户

回答已采纳

发布于 2011-08-13 00:11:06

为什么不使用真正的泛型方法GetDataElement<T> where T : DataElement呢?C#中不支持通用索引器。为什么你认为在这种情况下,索引器比方法更好?

票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7043028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档