zoukankan      html  css  js  c++  java
  • 枚举器

    1、可枚举的类型必须实现IEnumerable和IEnumerator接口
    2、枚举器实现了IEnumerator接口,它迭代Object类型,会有如下问题
      1、值类型的装箱和取消装箱操作降低了性能
      2、向下类型转换(从父类型到子类型)到引用类型也要付出少量的性能代价
      3、频繁的装箱操作会使托管堆空间紧张
      4、大型值类型集合的装箱也会使托管堆空间紧张
      5、需要与System.Object之间的类型转换,这并非是类型完全安全的
    3、迭代器
      yield语句
      语法:yield return expresssion  yield break
      迭代器块
      迭代器块是维护迭代之间的枚举器的状态机
      事件处理程序、构造函数和析构函数不能成为迭代器
      迭代器块不能再匿名方法中使用,迭代器块不能包含在一个带有catch处理程序的try块中
      迭代器块不能放在一个finally块中
      迭代器函数的限制
      迭代器方法必须返回一个IEnumerable或一个IEnumerator接口
      迭代器方法不能有ref参数
      迭代器方法不能有out参数
      迭代器方法不能是不安全的
      迭代器的本质
      C#编译器将迭代器实现为嵌套类,该嵌套类维护当前枚举数的状态
      迭代器是由语言编译器创建的,而不是由公共语言运行时(CLR)创建的
      迭代器实例
      双重迭代
      反向迭代
      临时集合
      复杂迭代
      

  • 相关阅读:
    强化学习基础
    大数据核心技术
    大数据用到哪些技术?
    机器学习算法
    机器学习概述
    java进程占用系统内存高,排查解决
    Vmbox Centos7安装完毕后无法联网的解决方法
    Java使用枚举优化大量if else
    java解析多级Json中的数组
    VSCODE安装美化JSON插件
  • 原文地址:https://www.cnblogs.com/changweihua/p/2174408.html
Copyright © 2011-2022 走看看