zoukankan      html  css  js  c++  java
  • c# 语法糖 yield

    • 怎么使用

    首次看到这个语法在github上,了解记录下yield语法有两种形式:
    yield return 表达式
    yield break 打断循环,返回到调用方
    直接上代码:

     1         public static IEnumerable<int> TestEven()
     2         {
     3             var lst = new List<int>() { 1, 2, 3, 4, 5, 6, 9, 10 };
     4             //try
     5             //{
     6             foreach (var item in lst)
     7             {
     8                 if (item > 9)
     9                     yield break;
    10                 if (item % 2 == 0)
    11                     yield return item;
    12             }
    13             //}
    14             //catch (Exception ex)
    15             //{
    16             //    throw ex;
    17             //}
    18 
    19         }
    20         static void Main(string[] args)
    21         {
    22             foreach (var item in TestEven())
    23             {
    24                 Console.WriteLine(item);
    25             }
    26             Console.ReadKey();
    }
    • 注意什么

               1.  yield return 不能放在try-catch 块中的任何块中,但是可以放在try-finally块的try块中

     

    2. yield break 可以放在try块,catch块但是不能放在finally块中

      3.迭代器的参数不能使用ref,in或out

  • 相关阅读:
    String系列
    java初始化构造函数调用顺序
    转发和重定向的区别
    HttpServletResponse对象
    JSP九大隐式对象
    关于异常
    MySQL下载、安装及启动
    MySQL的启动
    MySQL下载及安装
    U盘安装Win7操作系统
  • 原文地址:https://www.cnblogs.com/oxf5deb3/p/13499779.html
Copyright © 2011-2022 走看看