类和结构
类和结构是 .NET Framework 通用类型系统的两种基本构造。 每种本质上都是一种数据结构,其中封装了同属一个逻辑单元的一组数据和行为。 数据和行为是类或结构的成员,包括方法、属性和事件等(此主题稍后将具体列举)。
类是引用类型。 创建类的对象后,向其分配对象的变量仅保留对相应内存的引用。 将对象引用分配给新变量后,新变量会引用原始对象。 通过一个变量所做的更改将反映在另一个变量中,因为它们引用相同的数据。
结构是值类型。 创建结构时,向其分配结构的变量保留结构的实际数据。 将结构分配给新变量时,会复制结构。 因此,新变量和原始变量包含相同数据的副本(共两个)。 对一个副本所做的更改不会影响另一个副本
引用类型
创建对象时,在该托管堆上为该特定对象分足够的内存,并且该变量仅保存对所述对象位置的引用。 当分配托管堆上的类型和由 CLR 的自动内存管理功能对其进行回收(称为垃圾回收)时,需要开销。 但是,垃圾回收已是高度优化,并且在大多数情况下,不会产生性能问题。
抽象类
抽象类不能实例化。 抽象类的用途是提供一个可供多个派生类共享的通用基类定义。 例如,类库可以定义一个抽象类,将其用作多个类库函数的参数,并要求使用该库的程序员通过创建派生类来提供自己的类实现
辅助功能
每个类成员都有关联的可访问性,用于控制能够访问成员的程序文本区域。 可访问性有六种可能的形式。 以下内容对访问修饰符进行了汇总。
public
:访问不受限制。private
:访问仅限于此类。protected
:访问仅限于此类或派生自此类的类。internal
:仅可访问当前程序集(.exe
或.dll
)。protected internal
:仅可访问此类、从此类中派生的类,或者同一程序集中的类。private protected
:仅可访问此类或同一程序集中从此类中派生的类。
委托和 Lambda 表达式
委托类型表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。 委托还类似于其他一些语言中存在的“函数指针”概念。 与函数指针不同,委托是面向对象且类型安全的。
迭代器的介绍
https://www.cnblogs.com/zhili/archive/2012/12/02/Interator.html
https://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html