estoy teniendo un pequeño problema con un método en el que yo uso yield return
esto no funciona ...método no se llama cuando se utiliza yield return
public IEnumerable<MyClass> SomeMethod(int aParam)
{
foreach(DataRow row in GetClassesFromDB(aParam).Rows)
{
yield return new MyClass((int)row["Id"], (string)row["SomeString"]);
}
}
El código anterior no funciona, cuando la llamada es hecho a este método solo lo pasa por alto.
Sin embargo si cambio a ...
public IEnumerable<MyClass> SomeMethod(int aParam)
{
IList<MyClass> classes = new List<MyClass>();
foreach(DataRow row in GetClassesFromDB(aParam).Rows)
{
classes.Add(new MyClass((int)rows["Id"], (string)row["SomeString"]);
}
return classes;
}
Funciona muy bien.
No entiendo por qué el primer método no funciona, usted me podría ayudar en la comprensión de lo que está sucediendo aquí?
¿Cómo se llama el método? – gammelgul
Llamar a un constructor como este: 'Prop = SomeMethod (param);' – DaveParsons