Ich bin mit einem Verfahren haben Probleme, in denen ich yield return
verwende dies nicht funktioniert ...Methode nicht aufgerufen, wenn Ausbeute unter Verwendung Rückkehr
public IEnumerable<MyClass> SomeMethod(int aParam)
{
foreach(DataRow row in GetClassesFromDB(aParam).Rows)
{
yield return new MyClass((int)row["Id"], (string)row["SomeString"]);
}
}
Der obige Code nie ausgeführt wird, wenn der Anruf Bei dieser Methode geht es nur darüber hinweg.
Allerdings, wenn ich ändern ...
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;
}
Es funktioniert gut.
Ich verstehe nicht, warum das erste Verfahren läuft nie, könnten Sie mir helfen, zu verstehen, was hier geschieht?
Wie nennt man die Methode? – gammelgul
Rufen Sie einen Konstruktor wie folgt auf: 'Prop = SomeMethod (param);' – DaveParsons