Je vais avoir un peu de mal avec une méthode dans laquelle j'utilise yield return
cela ne fonctionne pas ...Méthode non appelée lors de l'utilisation 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"]);
}
}
Le code ci-dessus ne fonctionne jamais, lorsque l'appel est fait à cette méthode, il passe juste dessus.
Cependant si je change de ...
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;
}
Il fonctionne très bien. Je ne comprends pas pourquoi la première méthode ne fonctionne jamais, pourriez-vous m'aider à comprendre ce qui se passe ici?
Comment appelez-vous la méthode? – gammelgul
Appel dans un constructeur comme ceci: 'Prop = SomeMethod (param);' – DaveParsons