मैं एक तरीका है जिसमें मैं 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"]);
}
}
ऊपर कोड कभी नहीं चलाता है, कॉल है जब इस विधि से बनाया गया यह सिर्फ इसके ऊपर कदम है।
लेकिन अगर मैं करने के लिए बदल ...
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;
}
यह सिर्फ ठीक काम करता है।
मुझे समझ में नहीं आता कि पहली विधि कभी क्यों नहीं चलती है, क्या आप यह समझने में मेरी सहायता कर सकते हैं कि यहां क्या हो रहा है?
आप विधि को कैसे कॉल करते हैं? – gammelgul
इस तरह के एक निर्माता में कॉल करना: 'Prop = SomeMethod (param);' – DaveParsons