这个还是有点意思,两个都是有返回的意思,但是区别在哪里呢? 1.return 会销毁函数的局部变量,下次调用的时候又会产生新的值 2.yield 当退出函数的时候,变量人然存在,函数下次调用的时候变量仍然存在。

"yield break"用来表明迭代结束,跳出迭代

以下示例来源网络:

class A:IEnumerable
{
   private int[] array=new int[10];
   public IEnumrator GetEnumerator()
   {
       for(int i=0;i<10;i++)
       {
           yield return array[i];
       }                     
   }
}

如果你只想让用户访问ARRAY的前8个数据,则可做如下修改.这时将会用到yield break,修改函数如下

public IEnumrator GetEnumerator()
{
    for(int i=0;i<10;i++)
    {
        if(i<8)
            yield return array[i];
        else
            yield break;
    }                     
}

这样,则只会返回前8个数据.

"yield break"用来表明迭代结束,跳出迭代

下面是个例子,如果你定义这样一个迭代函数:

int i = 0;
while (true) {
    if (i < 5) {
        yield return i;
    } 
    else {
        yield break;
    }
    i++;
}
Console.Out.WriteLine("无法执行~");

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
  • 2022-12-23
  • 2021-07-15
  • 2022-01-12
  • 2022-12-23
  • 2022-01-14
猜你喜欢
  • 2022-12-23
  • 2022-01-23
  • 2021-12-19
  • 2021-09-21
  • 2021-07-01
  • 2022-12-23
相关资源
相似解决方案