迭代一个类是否指迭代一个类的一个对象,而迭代一个类中的一个方法,就可以看作是迭代一个类成员呢。如果这个方法是一个静态方法,那么就不用制定一个具体的对象。class Program
{
public static IEnumerable SimpleList()
{
yield return "string 1";
yield return "string 2";
} static void Main(string[] args)
{
foreach (string item in SimpleList())
Console.WriteLine(item);
Console.ReadKey();
}
}yield return 到底是把值返回到哪里呢?是不是说当调用SimpleList()这个方法的时候系统就自动的为它分配了一个空间,yield return就是把值返回到这个空间里。当主程序调用foreach的时候,就是到这个空间里去遍历呢?系统可以为一个方法分配空间吗?如果是迭代一个类的话,是不是yield return就是返回值到这个类的一个对象的GetEnumerator()方法的空间里?谢谢了。
{
public static IEnumerable SimpleList()
{
yield return "string 1";
yield return "string 2";
} static void Main(string[] args)
{
foreach (string item in SimpleList())
Console.WriteLine(item);
Console.ReadKey();
}
}yield return 到底是把值返回到哪里呢?是不是说当调用SimpleList()这个方法的时候系统就自动的为它分配了一个空间,yield return就是把值返回到这个空间里。当主程序调用foreach的时候,就是到这个空间里去遍历呢?系统可以为一个方法分配空间吗?如果是迭代一个类的话,是不是yield return就是返回值到这个类的一个对象的GetEnumerator()方法的空间里?谢谢了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货