zoukankan      html  css  js  c++  java
  • C#中YieldReturn的用法

    Yield Return 和 Yield Break 的出现是为了简化迭代器。

    类如果能被遍历则必须有IEnumerator<string> GetEnumerator() 方法, 并有用Yield Return

    方法如果能被遍历则返回类型为 IEnumerable<string>,并有用Yield Return

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace TestYield
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                foreach (string v in new Animal())
                {
                    Console.WriteLine(v);
                }
    
    
                foreach (string v in getList())
                {
                    Console.WriteLine(v);
                }
                Console.ReadLine();
            }
    
    
            static IEnumerable<string> getList()
            {
                yield return "cccc";
                yield return "dddd";
            }
          
        }
    
    
        public class Animal {
           //类迭代必须要有的方法,使用Yield简化了迭代的实现
          public IEnumerator<string> GetEnumerator()
            {
                yield return "aaaaa";
                yield return "bbbbb";
            }
    
        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace TestYield
    {
        class Program
        {
            static void Main(string[] args)
            {

                foreach (string v in new Animal())
                {
                    Console.WriteLine(v);
                }


                foreach (string v in getList())
                {
                    Console.WriteLine(v);
                }
                Console.ReadLine();
            }


            static IEnumerable<string> getList()
            {
                yield return "cccc";
                yield return "dddd";
            }
          
        }


        public class Animal {

          public IEnumerator<string> GetEnumerator()
            {
                yield return "aaaaa";
                yield return "bbbbb";
            }

        }
    }

  • 相关阅读:
    VS注释提示英文变中文的方法
    Windows 10安裝.net Framework 3.5出現0X800F0954錯誤
    NodeJS+NPM+Bower+Android环境安装配置
    复合索引
    高并发的核心技术-幂等的实现方案
    Redis初使用
    数据库SQL查找包含某列的所有table
    多线程中的wait与sleep到底谁释放了锁
    https配置
    iOS下的实际网络连接状态检测(转)
  • 原文地址:https://www.cnblogs.com/tiancai/p/6482942.html
Copyright © 2011-2022 走看看