摘要:
Cp19可空值类型 主要解决的是和数据库中null对应的问题; System.Nullable结构;值类型; int?语法; 可空实例能够使用操作符; C 空合并操作符??; 即可用于引用类型,也可以用于值类型; CLR支持可空值类型;装箱;拆箱;通过可空值类型调用接口和方法; 阅读全文
摘要:
Cp18 定制Attribute 意义 利用Attribute,可以声明性的给自己的代码结构创建注解,从而实现一些特殊的功能;最终在元数据中生成,这种可扩展的元数据信息可以在运行时的时候查询,从而动态的改变代码的运行方式;大多数Attribute对编译器没有什么特别的意义,只是在元数据中生成它们; 阅读全文
摘要:
Cp17委托 简单介绍 delegate回调函数机制,可以理解存储函数地址的变量类型; 类型安全; 引用类型支持逆变和协变; 回调 静态方法,实例方法 委托的本质 所有的委托都派生自System.MulticastDelegate; IL代码分析,本质是类,包含构造器,invoke,begininv 阅读全文
摘要:
Cp16数组 一维数组,多维数组,交错数组;引用类型;P338的图非常的清楚地描述了值类型和引用类型在托管堆中的关系;越界检查; 数组初始化 数组初始化器; 四种写法 数组的转型 数组类型必须维数相同,且值类型不能转换成其他类型; Array.Copy 数组的协变 Array的静态方法 定义了很多有 阅读全文
摘要:
Cp15枚举和位标识 枚举类型 本质是结构,符号名称 值;好处显而易见;System.Enum;值类型; 编译的时候,符号会转换为常量字段; 枚举支持很多方法和成员; 位标识bit flag 判断和设置文件属性; 经常用枚举类型来标识一组可以组合的位标识 ; System.FlagsAttribut 阅读全文