Dada una clase base con la siguiente interfaz:bloques Iterator y la herencia
public class Base
{
public virtual IEnumerable<string> GetListOfStuff()
{
yield return "First";
yield return "Second";
yield return "Third";
}
}
Quiero hacer una clase derivada que reemplaza el método, y añade su propio material, así:
public class Derived : Base
{
public override IEnumerable<string> GetListOfStuff()
{
foreach (string s in base.GetListOfStuff())
{
yield return s;
}
yield return "Fourth";
yield return "Fifth";
}
}
Sin embargo, recibí una advertencia de que "no se puede verificar el acceso a un miembro a través de una palabra clave básica de un iterador".
¿Cuál es la solución aceptada para este problema, entonces?
Tenga en cuenta que esto está resuelto en C# 4 (y ... en C# 3 SP 1? Tal vez? No recuerdo si obtuvimos esa solución o no. Lo intentamos). El compilador ahora genera el ayudante para tú. –
Recibí la advertencia en VS2008 SP1. –