Sto avendo un po 'di problemi con un metodo in cui io uso yield return
questo non funziona ...Metodo non chiamata quando si usa dei rendimenti
public IEnumerable<MyClass> SomeMethod(int aParam)
{
foreach(DataRow row in GetClassesFromDB(aParam).Rows)
{
yield return new MyClass((int)row["Id"], (string)row["SomeString"]);
}
}
Il codice di cui sopra non si esaurisce mai, quando la chiamata è fatto a questo metodo, lo scavalca.
Tuttavia se cambio di ...
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;
}
funziona bene.
Non capisco perché il primo metodo non funzioni mai, potresti aiutarmi a capire cosa sta succedendo qui?
Come si chiama il metodo? – gammelgul
Chiamando in un costruttore come questo: 'Prop = SomeMethod (param);' – DaveParsons