序<br>作者简介<br>注解者简介<br>前言<br>第1章 介绍<br>1.1 Hello,World<br>1.2 程序结构<br>1.3 类型和变量<br>1.4 表达式<br>1.5 语句<br>1.6 类和对象<br>1.6.1 成员<br>1.6.2 访问控制<br>1.6.3 类型参数<br>1.6.4 基类<br>1.6.5 字段<br>1.6.6 方法<br>1.6.7 其他函数成员<br>1.7 结构<br>1.8 数组<br>1.9 接口<br>1.10 枚举<br>1.11 委托<br>1.12 特性<br>第2章 词法结构<br>2.1 程序<br>2.2 文法<br>2.2.1 文法表示法<br>2.2.2 词法文法<br>2.2.3 语法文法<br>2.3 词法分析<br>2.3.1 行终结符<br>2.3.2 注释<br>2.3.3 空白符<br>2.4 标记<br>2.4.1 Unicode字符转义序列<br>2.4.2 标识符<br>2.4.3 关键字<br>2.4.4 字量<br>2.4.5 操作符和标点符号<br>2.5 预处理指令<br>2.5.1 条件编译符号<br>2.5.2 预处理表达式<br>2.5.3 声明指令<br>2.5.4 条件编译指令<br>2.5.5 诊断指令<br>2.5.6 区域指令<br>2.5.7 行指令<br>2.5.8 编译指示指令<br>第3章 基本概念<br>3.1 应用程序起始<br>3.2 应用程序终止<br>3.3 声明<br>3.4 成员<br>3.4.1 命名空间成员<br>3.4.2 结构成员<br>3.4.3 枚举成员<br>3.4.4 类成员<br>3.4.5 接口成员<br>3.4.6 数组成员<br>3.4.7 委托成员<br>3.5 成员访问<br>3.5.1 声明可访问性<br>3.5.2 可访问域<br>3.5.3 实例成员的保护访问<br>3.5.4 访问限制<br>3.6 签名和重载<br>3.7 作用域<br>3.7.1 名字隐藏<br>3.8 命名空间和类型名称<br>3.8.1 完全限定名<br>3.9 自动化内存管理<br>3.10 执行顺序<br>第4章 类型<br>4.1 值类型<br>4.1.1 System.ValueType类型<br>4.1.2 默认构造函数<br>4.1.3 结构类型<br>4.1.4 简单类型<br>4.1.5 整数类型<br>4.1.6 浮点数类型<br>4.1 7decimal类型<br>4.1.8 bool类型<br>4.1.9 枚举类型<br>4.1.1 0可空值类型<br>4.2 引用类型<br>4.2.1 类类型<br>4.2.2 Object类型<br>4.2.3 String类型<br>4.2.4 接口类型<br>4.2.5 数组类型<br>4.2.6 委托类型<br>4.3 装箱和拆箱<br>4.3.1 装箱转换<br>4.3.2 拆箱转换<br>4.4 构造类型<br>4.4.1 类型实参<br>4.4.2 开放式和封闭式类型<br>4.4.3 绑定和未绑定类型<br>4.4.4 满足限制<br>4.5 类型参数<br>4.6 表达式树类型<br>第5章 变量<br>5.1 变量类别<br>5.1.1 静态变量<br>5.1.2 实例变量<br>5.1.3 数组元素<br>5.1.4 值参数<br>5.1.5 引用参数<br>5.1.6 输出参数<br>5.1.7 局部变量<br>5.2 默认值<br>5.3 明确赋值<br>5.3.1 初始赋值的变量<br>5.3.2 未赋初值的变量<br>5.3.3 确定明确赋值的精确规则<br>5.4 变量引用<br>5.5 变量引用的原子性<br>第6章 转换<br>6.1 隐式转换<br>6.1.1 标识转换<br>6.1.2 隐式数字转换<br>6.1.3 隐式枚举转换<br>6.1.4 隐式可空值转换<br>6.1.5 Null字量转换<br>6.1.6 隐式引用转换<br>6.1.7 装箱转换<br>6.1.8 隐式常量表达式转换<br>6.1.9 带类型参数的隐式转换<br>6.1.10 自定义隐式转换<br>6.1.11 匿名函数转换和方法组转换<br>6.2 显式转换<br>6.2.1 显式数字转换<br>6.2.2 显式枚举转换<br>6.2.3 显式可空值转换<br>6.2.4 显式引用转换<br>6.2.5 拆箱转换<br>6.2.6 带类型参数的显式转换<br>6.2.7 自定义显式转换<br>6.3 标准转换<br>6.3.1 标准隐式转换<br>6.3.2 标准显式转换<br>6.4 自定义转换<br>6.4.1 允许的自定义转换<br>6.4.2 提升转换操作符<br>6.4.3 自定义转换的计算<br>6.4.4 自定义隐式转换<br>6.4.5 自定义显式转换<br>6.5 匿名函数转换<br>6.5.1 匿名函数到委托类型转换的计算<br>6.5.2 匿名函数到表达式树类型转换的<br>计算<br>6.5.3 实现举例<br>6.6 方法组转换<br>第7章 表达式<br>7.1 表达式分类<br>7.1.1 表达式的值<br>7.2 操作符<br>7.2.1 操作符优先级和结合性<br>7.2.2 操作符重载<br>7.2.3 一元操作符重载决策<br>7.2.4 二元操作符重载决策<br>7.2.5 候选自定义操作符<br>7.2.6 数字提升<br>7.2.7 提升操作符<br>7.3 成员查找<br>7.3.1 基础类型<br>7.4 函数成员<br>7.4.1 参数列表<br>7.4.2 类型推导<br>7.4.3 重载决策<br>7.4.4 函数成员调用<br>7.5 基础表达式<br>7.5.1 字量<br>7.5.2 简单名字<br>7.5.3 括号表达式<br>7.5.4 成员访问<br>7.5.5 调用表达式<br>7.5.6 元素访问<br>7.5.7 this访问<br>7.5.8 base访问<br>7.5.9 后缀递增和递减操作符<br>7.5.1 0new操作符<br>7.5.1 1typeof操作符<br>7.5.1 2checked和unchecked操作符<br>7.5.1 3默认值表达式<br>7.5.1 4匿名方法表达式<br>7.6 一元操作符<br>7.6.1 一元加号操作符<br>7.6.2 一元减号操作符<br>7.6.3 逻辑否操作符<br>7.6.4 按位求补操作符<br>7.6.5 前缀递增和递减操作符<br>7.6.6 转换表达式<br>7.7 算术操作符<br>7.7.1 乘法操作符<br>7.7.2 除法操作符<br>7.7.3 求余操作符<br>7.7.4 加法操作符<br>7.7.5 减法操作符<br>7.8 移位操作符<br>7.9 关系和类型测试操作符<br>7.9.1 整数比较操作符<br>7.9.2 浮点数比较操作符<br>7.9.3 小数比较操作符<br>7.9.4 布尔值相等操作符<br>7.9.5 枚举比较操作符<br>7.9.6 引用类型相等操作符<br>7.9.7 字符串相等操作符<br>7.9.8 委托相等操作符<br>7.9.9 相等操作符和null<br>7.9.10 is操作符<br>7.9.11 as操作符<br>7.10 逻辑操作符<br>7.10.1 整数逻辑操作符<br>7.10.2 枚举逻辑操作符<br>7.10.3 布尔值逻辑操作符<br>7.10.4 可空值布尔逻辑操作符<br>7.11 条件逻辑操作符<br>7.11.1 布尔条件逻辑操作符<br>7.11.2 自定义条件逻辑操作符<br>7.12 Null拼接操作符<br>7.13 条件操作符<br>7.14 匿名函数表达式<br>7.14.1 匿名函数签名<br>7.14.2 匿名函数主体<br>7.14.3 重载决策<br>7.14.4 外部变量<br>7.14.5 匿名函数表达式的计算<br>7.15 查询表达式<br>7.15.1 查询表达式里的歧义<br>7.15.2 查询表达式翻译<br>7.15.3 查询表达式模式<br>7.16 值操作符<br>7.16.1 简单赋值<br>7.16.2 组合赋值<br>7.16.3 事件赋值<br>7.17 达式<br>7.18 量表达式<br>7.19 尔表达式<br>第8章 语句<br>8.1 终点和可及性<br>8.2 块<br>8.2.1 语句列表<br>8.3 空语句<br>8.4 标签语句<br>8.5 声明语句<br>8.5.1 局部变量声明<br>8.5.2 局部常量声明<br>8.6 表达式语句<br>8.7 选择语句<br>8.7.1 if语句<br>8.7.2 switch语句<br>8.8 迭代语句<br>8.8.1 while语句<br>8.8.2 do语句<br>8.8.3 for语句<br>8.8.4 for each语句<br>8.9 跳转语句<br>8.9.1 break语句<br>8.9.2 continue语句<br>8.9.3 go to语句<br>8.9.4 return语句<br>8.9.5 throw语句<br>8.10 try语句<br>8.11 checked和unchecked语句<br>8.12 lock语句<br>8.13 using语句<br>8.14 yield语句<br>第9章 命名空间<br>9.1 编译单元<br>9.2 命名空间声明<br>9.3 Extern别名<br>9.4 using指令<br>9.4.1 using别名指令<br>9.4.2 using命名空间指令<br>9.5 命名空间成员<br>9.6 类型声明<br>9.7 命名空间别名限定符<br>9.7.1 别名的唯一性<br>第10章 类<br>10.1 类声明<br>10.1.1 类修饰符<br>10.1.2 partial修饰符<br>10.1.3 类型形参<br>10.1.4 类基础规范<br>10.1.5 类型形参限制<br>10.1.6 类主体<br>10.2 局部类型<br>10.2.1 特性<br>10.2.2 修饰符<br>10.2.3 类型形参和限制<br>10.2.4 基类<br>10.2.5 基础接口<br>10.2.6 成员<br>10.2.7 局部方法<br>10.2.8 名字绑定<br>10.3 类成员<br>10.3.1 实例类型<br>10.3.2 构造类型的成员<br>10.3.3 继承<br>10.3.4 new修饰符<br>10.3.5 访问修饰符<br>10.3.6 组成类型<br>10.3.7 静态成员和实例成员<br>10.3.8 嵌套类型<br>10.3.9 保留成员名<br>10.4 常量<br>10.5 字段<br>10.5.1 静态字段和实例字段<br>10.5.2 只读字段<br>10.5.3 易失字段<br>10.5.4 字段初始化<br>10.5.5 字段初始化语句<br>10.6 方法<br>10.6.1 方法形参<br>10.6.2 静态和实例方法<br>10.6.3 虚拟方法<br>10.6.4 覆写方法<br>10.6.5 密封方法<br>10.6.6 抽象方法<br>10.6.7 外部方法<br>10.6.8 局部方法<br>10.6.9 扩展方法<br>10.6.10 方法主体<br>10.6.11 方法重载<br>10.7 属性<br>10.7.1 静态属性和实例属性<br>10.7.2 访问器<br>10.7.3 自动实现的属性<br>10.7.4 可访问性<br>10.7.5 虚拟.密封.覆写和抽象访问器<br>10.8 事件<br>10.8.1 类似字段的事件<br>10.8.2 事件访问器<br>10.8.3 静态事件和实例事件<br>10.8.4 虚拟.密封.覆写和抽象访问器<br>10.9 索引<br>10.9.1 索引重载<br>10.10 操作符<br>10.10.1 一元操作符<br>10.10.2 二元操作符<br>10.10.3 转换操作符<br>10.11 实例构造函数<br>10.11.1 构造函数初始化语句<br>10.11.2 实例字段初始化语句<br>10.11.3 构造函数的执行<br>10.11.4 默认构造函数<br>10.11.5 私有构造函数<br>10.11.6 可选的实例构造函数参数<br>10.12 静态构造函数<br>10.13 析构函数<br>10.14 迭代器<br>10.14.1 计数接口<br>10.14.2 枚举接口<br>10.14.3 Yield类型<br>10.14.4 计数对象<br>10.14.5 枚举对象<br>10.14.6 实现举例<br>第11章 结构<br>11.1 结构声明<br>11.1.1 结构修饰符<br>11.1.2 partial修饰符<br>11.1.3 结构接口<br>11.1.4 结构主体<br>11.2 结构成员<br>11.3 类和结构的区别<br>11.3.1 值语义<br>11.3.2 继承<br>11.3.3 赋值<br>11.3.4 默认值<br>11.3.5 装箱和拆箱<br>11.3.6 this的含义<br>11.3.7 字段初始化语句<br>11.3.8 构造函数<br>11.3.9 析构函数<br>11.3.1 0静态构造函数<br>11.4 结构举例<br>11.4.1 数据库整数类型<br>11.4.2 数据库布尔类型<br>第12章 数组<br>12.1 数组类型<br>12.1.1 System. Array类型<br>12.1.2 数组和泛型I List接口<br>12.2 数组创建<br>12.3 数组元素访问<br>12.4 数组成员<br>12.5 数组协变<br>12.6 数组初始化语句<br>第13章 接口<br>13.1 接口声明<br>13.1.1 接口修饰符<br>13.1.2 partial修饰符<br>13.1.3 基础接口<br>13.1.4 接口主体<br>13.2 接口成员<br>13.2.1 接口方法<br>13.2.2 接口属性<br>13.2.3 接口事件<br>13.2.4 接口索引<br>13.2.5 接口成员访问<br>13.3 完全限定接口成员名<br>13.4 接口实现<br>13.4.1 显式接口成员实现<br>13.4.2 实现接口的唯一性<br>13.4.3 泛型方法的实现<br>13.4.4 接口映射<br>13.4.5 接口实现继承<br>13.4.6 重新实现接口<br>13.4.7 抽象类和接口<br>第14章 枚举<br>14.1 枚举声明<br>14.2 枚举修饰符<br>14.3 枚举成员<br>14.4 System. Enum类型<br>14.5 枚举值和操作<br>第15章 委托<br>15.1 委托声明<br>15.2 委托兼容性<br>15.3 委托实例化<br>15.4 委托调用<br>第16章 异常<br>16.1 异常产生的原因<br>16.2 System. Exception类<br>16.3 异常是如何处理的<br>16.4 常见的异常类<br>第17章 特性<br>17.1 特性类<br>17.1.1 特性的用法<br>17.1.2 位置和已命名参数<br>17.1.3 特性形参类型<br>17.2 特性规范<br>17.3 特性实例<br>17.3.1 特性的编译<br>17.3.2 在运行时获取一个特性实例<br>17.4 保留特性<br>17.4.1 Attribute Usage特性<br>17.4.2 Conditional特性<br>17.4.3 Obsolete特性<br>17.5 用于互操作的特性<br>17.5.1 和COM以及Win32组件互操作<br>17.5.2 和其他.NET语言互操作<br>第18章 不安全的代码<br>18.1 不安全的上下文<br>18.2 指针类型<br>18.3 固定变量和可移动变量<br>18.4 指针转换<br>18.4.1 指针数组<br>18.5 表达式里的指针<br>18.5.1 指针间接寻址<br>18.5.2 指针成员访问<br>18.5.3 指针元素访问<br>18.5.4 取地址操作符<br>18.5.5 指针递增和递减<br>18.5.6 指针算术<br>18.5.7 指针比较<br>18.5.8 size of操作符<br>18.6 fixed语句<br>18.7 定长缓冲区<br>18.7.1 定长缓冲区声明<br>18.7.2 表达式里的定长缓冲区<br>18.7.3 明确赋值检查<br>18.8 栈分配<br>18.9 动态内存分配<br>附录A 文档注释<br>附录B 文法<br>附录C 参考资料
展开