【发布时间】:2011-01-26 19:56:35
【问题描述】:
给定一个具有以下接口的基类:
public class Base
{
public virtual IEnumerable<string> GetListOfStuff()
{
yield return "First";
yield return "Second";
yield return "Third";
}
}
我想创建一个覆盖该方法的派生类,并添加自己的东西,如下所示:
public class Derived : Base
{
public override IEnumerable<string> GetListOfStuff()
{
foreach (string s in base.GetListOfStuff())
{
yield return s;
}
yield return "Fourth";
yield return "Fifth";
}
}
但是,我收到一条警告,“无法验证通过迭代器中的基本关键字访问成员”。
那么这个问题的公认解决方案是什么?
【问题讨论】:
-
请注意,这在 C# 4 中已修复(并且......在 C# 3 SP 1 中?也许?我不记得我们是否得到了这个修复。我们打算这样做。)编译器现在为您生成帮助器。
-
我在 VS2008 SP1 中收到警告。
标签: c# inheritance iterator