【问题标题】:convert a method into a getter将方法转换为 getter
【发布时间】:2011-03-14 16:44:27
【问题描述】:

我有一个泛型方法(在非泛型类中)返回元素。

    public IEnumerable<T> GetElements<T>() where T : class
    {
        foreach (Element element in elements)
        {
            if (element is T)
            {
                yield return element as T;
            }
        }
    }

我想在 getter 方法中转换这个函数并尝试了类似的方法

    public IEnumerable<T> Elements<T>
    {
        get
        {
            foreach (Element element in elements)
            {
                if (element is T)
                {
                    yield return element as T;
                }
            }
        }
    }

这不编译:( expected

有人知道这里有什么问题吗?

谢谢

【问题讨论】:

标签: c# generics


【解决方案1】:

属性不支持泛型参数。

实现这样的事情的唯一方法是为封装类型提供一个泛型类型参数。

【讨论】:

  • 没错。基本上,编译器正在读取public IEnumerable&lt;T&gt; Elements&lt;T&gt; 行并认为因为有一个泛型类型参数,所以它必须是一个方法,然后寻找一个(,它当然找不到,因为你想要它成为一个财产。
猜你喜欢
  • 2019-09-03
  • 2021-07-12
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多