书籍详情
C#编程语言详解(第2版)
作者:(美)海杰尔斯伯格,(美)韦尔特马瑟,(美)戈尔德 著,韩江,王秀慧 译
出版社:电子工业出版社
出版时间:2007-08-01
ISBN:9787121047053
定价:¥79.00
购买这本书可以去
内容简介
C#是一种简单、现代、面向对象和类型安全的程序设计语言。本书由C#语言的架构师Anders Hejlsberg和设计小组的成员编写,并为C# 2.0进行了更新。全书从C#语言的简介开始,完整并详细地介绍了C# 1.0的技术规范,并介绍了许多C# 2.0的新功能,包括泛型、匿名方法、迭代器、分部类型和可空类型等。《C#编程语言详解:第2版》对第一版中介绍的C#新增了许多功能,并做了很多改进。本书总共分为三个部分。第一部分“C# 1.0”包括第1~18章,首先简要介绍了C#语言,使读者可以快速了解C#的概念。接着介绍了C# 1.0语言的详细和完整的技术规范,内容包括词法结构、类型、变量、转换、表达式、语句、命名空间、异常、特性和不安全代码等。第二部分“C# 2.0”包括第19~25章,介绍了许多C# 2.0的新功能,包括泛型、匿名方法、迭代器、分部类型和可空类型等。第三部分“附录”介绍了文档注释,并总结了C# 2.0的词法和文法语法。
作者简介
Anders Hejlsberg是程序界的神话。他是C#语言的架构师和Microsoft公司杰出工程师。他曾在Borland公司就职13年,担任Delphi和Turbo Pascal的首席架构师,于1996年加盟Microsoft公司。
目录
《C#编程语言详解:第2版》
第一篇 C# 1.0
第1章 C#简介
1.1 Hello World
1.2 程序结构
1.3 类型和变量
1.4 表达式
1.5 语句
1.6 类和对象
1.6.1 成员
1.6.2 可访问性
1.6.3 基类
1.6.4 域
1.6.5 方法
1.6.6 其他函数成员
1.7 结构
1.8 数组
1.9 接口
1.10 枚举
1.11 委托
1.12 特性
第2章 词法结构
2.1 程序
2.2 文法
2.2.1 文法表示法
2.2.2 词法文法
2.2.3 句法文法
2.3 词法分析
2.3.1 行终结符
2.3.2 空白
2.3.3 注释
2.4 标记
2.4.1 Unicode字符转义序列
2.4.2 标识符
2.4.3 关键字
2.4.4 字面值
2.4.5 运算符和标点
2.5 预处理指令
2.5.1 条件编译符号
2.5.2 预处理表达式
2.5.3 声明指令
2.5.4 条件编译指令
2.5.5 诊断指令
2.5.6 区域指令
2.5.7 行指令
第3章 基本概念
3.1 应用程序启动
3.2 应用程序终止
3.3 声明
3.4 成员
3.4.1 命名空间成员
3.4.2 结构成员
3.4.3 枚举成员
3.4.4 类成员
3.4.5 接口成员
3.4.6 数组成员
3.4.7 委托成员
3.5 成员访问
3.5.1 已声明可访问性
3.5.2 可访问域
3.5.3 实例成员的受保护访问
3.5.4 可访问性约束
3.6 签名和重载
3.7 范围
名称隐藏
3.8 命名空间和类型名称
完全限定名
3.9 自动内存管理
3.10 执行顺序
第4章 类型
4.1 值类型
4.1.1 System.ValueType类型
4.1.2 默认构造函数
4.1.3 结构类型
4.1.4 简单类型
4.1.5 整型
4.1.6 浮点型
4.1.7 decimal类型
4.1.8 bool类型
4.1.9 枚举类型
4.2 引用类型
4.2.1 类类型
4.2.2 对象类型
4.2.3 string类型
4.2.4 接口类型
4.2.5 数组类型
4.2.6 委托类型
4.3 装箱和拆箱
4.3.1 装箱转换
4.3.2 拆箱转换
第5章 变量
5.1 变量类别
5.1.1 静态变量
5.1.2 实例变量
5.1.3 数组元素
5.1.4 值参数
5.1.5 引用参数
5.1.6 输出参数
5.1.7 局部变量
5.2 默认值
5.3 明确赋值
5.3.1 初始已赋值变量
5.3.2 初始未赋值变量
5.3.3 确定是否明确赋值的细则
5.4 变量引用
5.5 变量引用的原子性
第6章 转换
6.1 隐式转换
6.1.1 标识转换
6.1.2 隐式数值转换
6.1.3 隐式枚举转换
6.1.4 隐式引用转换
6.1.5 装箱转换
6.1.6 隐式常量表达式转换
6.1.7 用户自定义的隐式转换
6.2 显式转换
6.2.1 显式数值转换
6.2.2 显式枚举转换
6.2.3 显式引用转换
6.2.4 拆箱转换
6.2.5 用户自定义的显式转换
6.3 标准转换
6.3.1 标准隐式转换
6.3.2 标准显式转换
6.4 用户自定义的转换
6.4.1 允许的用户自定义转换
6.4.2 用户自定义转换的计算
6.4.3 用户自定义的隐式转换
6.4.4 用户自定义的显式转换
第7章 表达式
7.1 表达式的分类
表达式的值
7.2 运算符
7.2.1 运算符的优先级和结合性
7.2.2 运算符重载
7.2.3 一元运算符重载决策
7.2.4 二元运算符重载决策
7.2.5 候选用户自定义运算符
7.2.6 数值提升
7.3 成员查找
基类型
7.4 函数成员
7.4.1 自变量列表
7.4.2 重载决策
7.4.3 函数成员调用
7.5 基本表达式
7.5.1 字面值
7.5.2 简单名称
7.5.3 带括号的表达式
7.5.4 成员访问
7.5.5 调用表达式
7.5.6 元素访问
7.5.7 this访问
7.5.8 base访问
7.5.9 后缀增量和后缀减量
7.5.9 运算符
7.5.10 new运算符
7.5.11 typeof运算符
7.5.12 checked和unchecked
7.5.12 运算符
7.6 一元运算符
7.6.1 一元加运算符
7.6.2 一元减运算符
7.6.3 逻辑求反运算符
7.6.4 按位求补运算符
7.6.5 前缀增量和减量运算符
7.6.6 强制转换表达式
7.7 算术运算符
7.7.1 乘法运算符
7.7.2 除法运算符
7.7.3 余数运算符
7.7.4 加法运算符
7.7.5 减法运算符
7.8 移位运算符
7.9 关系和类型测试运算符
7.9.1 整数比较运算符
7.9.2 浮点比较运算符
7.9.3 小数比较运算符
7.9.4 布尔相等运算符
7.9.5 枚举比较运算符
7.9.6 引用类型相等运算符
7.9.7 字符串相等运算符
7.9.8 委托相等运算符
7.9.9 is运算符
7.9.10 as运算符
7.10 逻辑运算符
7.10.1 整数逻辑运算符
7.10.2 枚举逻辑运算符
7.10.3 布尔逻辑运算符
7.11 条件逻辑运算符
7.11.1 布尔条件逻辑运算符
7.11.2 用户自定义的条件
7.11.2 逻辑运算符
7.12 条件运算符
7.13 赋值运算符
7.13.1 简单赋值
7.13.2 复合赋值
7.13.3 事件赋值
7.14 表达式
7.15 常量表达式
7.16 布尔表达式
第8章 语句
8.1 结束点和可到达性
8.2 块
语句列表
8.3 空语句
8.4 标记语句
8.5 声明语句
8.5.1 局部变量声明
8.5.2 局部常量声明
8.6 表达式语句
8.7 选择语句
8.7.1 if语句
8.7.2 switch语句
8.8 迭代语句
8.8.1 while语句
8.8.2 do语句
8.8.3 for语句
8.8.4 foreach语句
8.9 跳转语句
8.9.1 break语句
8.9.2 continue语句
8.9.3 goto语句
8.9.4 return语句
8.9.5 throw语句
8.10 try语句
8.11 checked语句和unchecked
8.11 语句
8.12 lock语句
8.13 using语句
第9章 命名空间
9.1 编译单元
9.2 命名空间声明
9.3 using指令
9.3.1 using别名指令
9.3.2 using命名空间指令
9.4 命名空间成员
9.5 类型声明
第10章 类
10.1 类声明
10.1.1 类修饰符
10.1.2 类基规范
10.1.3 类主体
10.2 类成员
10.2.1 继承
10.2.2 new修饰符
10.2.3 访问修饰符
10.2.4 构成类型
10.2.5 静态成员和实例成员
10.2.6 嵌套类型
10.2.7 保留成员名称
10.3 常量
10.4 域
10.4.1 静态域和实例域
10.4.2 只读域
10.4.3 易失域
10.4.4 域初始化
10.4.5 变量初始值设定项
10.5 方法
10.5.1 方法参数
10.5.2 静态方法和实例方法
10.5.3 虚方法
10.5.4 重写方法
10.5.5 密封方法
10.5.6 抽象方法
10.5.7 外部方法
10.5.8 方法主体
10.5.9 方法重载
10.6 属性
10.6.1 静态属性和实例属性
10.6.2 访问器
10.6.3 虚、密封、重写和
10.6.3 抽象访问器
10.7 事件
10.7.1 类似域的事件
10.7.2 事件访问器
10.7.3 静态事件和实例事件
10.7.4 虚、密封、重写和
10.7.4 抽象访问器
10.8 索引器
索引器重载
10.9 运算符
10.9.1 一元运算符
10.9.2 二元运算符
10.9.3 转换运算符
10.10 实例构造函数
10.10.1 构造函数初始值
10.10.1 设定项
10.10.2 实例变量初始值
10.10.2 设定项
10.10.3 构造函数的执行
10.10.4 默认构造函数
10.10.5 私有构造函数
10.10.6 可选的实例构造函数
10.10.6 参数
10.11 静态构造函数
10.12 析构函数
第11章 结构
11.1 结构声明
11.1.1 结构修饰符
11.1.2 结构接口
11.1.3 结构主体
11.2 结构成员
11.3 类和结构的区别
11.3.1 值语义
11.3.2 继承
11.3.3 赋值
11.3.4 默认值
11.3.5 装箱和拆箱
11.3.6 this的意义
11.3.7 域初始值设定项
11.3.8 构造函数
11.3.9 析构函数
11.3.10 静态构造函数
11.4 结构示例
11.4.1 数据库整型
11.4.2 数据库布尔类型
第12章 数组
12.1 数组类型
System.Array类型
12.2 数组创建
12.3 数组元素访问
12.4 数组成员
12.5 数组协变
12.6 数组初始值设定项
第13章 接口
13.1 接口声明
13.1.1 接口修饰符
13.1.2 基接口
13.1.3 接口主体
13.2 接口成员
13.2.1 接口方法
13.2.2 接口属性
13.2.3 接口事件
13.2.4 接口索引器
13.2.5 接口成员访问
13.3 完全限定接口成员名
13.4 接口实现
13.4.1 显式接口成员实现
13.4.2 接口映射
13.4.3 接口实现继承
13.4.4 接口重新实现
13.4.5 抽象类和接口
第14章 枚举
14.1 枚举声明
14.2 枚举修饰符
14.3 枚举成员
14.4 System.Enum类型
14.5 枚举的值和运算
第15章 委托
15.1 委托声明
15.2 委托实例化
15.3 委托调用
第16章 异常
16.1 导致异常的原因
16.2 System.Exception类
16.3 异常的处理方式
16.4 公共异常类
第17章 特性
17.1 特性类
17.1.1 特性用法
17.1.2 定位和命名参数
17.1.3 特性参数类型
17.2 特性专用化
17.3 特性实例
17.3.1 特性的编译
17.3.2 特性实例的运行时检索
17.4 保留的特性
17.4.1 AttributeUsage特性
17.4.2 Conditional特性
17.4.3 Obsolete特性
17.5 交互操作的特性
17.5.1 与COM和Win32组件
17.5.1 的交互操作
17.5.2 与其他.NET语言的
17.5.2 交互操作
第18章 不安全代码
18.1 不安全上下文
18.2 指针类型
18.3 固定变量和
18.3 可移动变量
18.4 指针转换
18.5 表达式中的指针
18.5.1 指针间接寻址
18.5.2 指针成员访问
18.5.3 指针元素访问
18.5.4 address-of运算符
18.5.5 指针递增和递减
18.5.6 指针算法
18.5.7 指针比较
18.5.8 sizeof运算符
18.6 固定语句
18.7 堆栈分配
18.8 动态内存分配
第二篇 C#2.0
第19章 C#2.0简介
19.1 泛型
19.1.1 为什么要使用泛型
19.1.2 创建和使用泛型
19.1.3 泛型类型实例化
19.1.4 约束
19.1.5 泛型方法
19.2 匿名方法
方法组转换
19.3 迭代器
19.4 分部类型
19.5 可空类型
第20章 泛型
20.1 泛型类声明
20.1.1 类型参数
20.1.2 实例类型
20.1.3 基规范
20.1.4 泛型类的成员
20.1.5 泛型类中的静态域
20.1.6 泛型类中的静态构造
20.1.6 函数
20.1.7 访问受保护成员
20.1.8 泛型类中的重载
20.1.9 参数数组方法和类型
20.1.9 参数
20.1.10 重写与泛型类
20.1.11 泛型类中的运算符
20.1.12 泛型类中的嵌套类型
20.1.13 应用程序入口点
20.2 泛型结构声明
20.3 泛型接口声明
20.3.1 所实现接口的唯一性
20.3.2 显式接口成员实现
20.4 泛型委托声明
20.5 构造类型
20.5.1 类型自变量
20.5.2 开放和封闭类型
20.5.3 构造类型的基类和接口
20.5.4 构造类型的成员
20.5.5 构造类型的可访问性
20.5.6 转换
20.5.7 using别名指令
20.5.8 属性
20.5.9 数组和泛型IList接口
20.6 泛型方法
20.6.1 泛型方法签名
20.6.2 虚泛型方法
20.6.3 调用泛型方法
20.6.4 类型自变量推断
20.6.5 语法多义性
20.6.6 通过委托使用泛型方法
20.6.7 不能是泛型的成员
20.7 约束
20.7.1 满足约束
20.7.2 类型参数上的成员查找
20.7.3 类型参数和装箱
20.7.4 涉及类型参数的转换
20.8 表达式和语句
20.8.1 对象创建表达式
20.8.2 typeof运算符
20.8.3 引用相等运算符
20.8.4 is运算符
20.8.5 as运算符
20.8.6 异常语句
20.8.7 lock语句
20.8.8 using语句
20.8.9 foreach 语句
20.9 查找规则的修改
20.9.1 命名空间和类型名称
20.9.2 成员查找
20.9.3 适用函数成员
20.9.4 更好的函数成员
20.9.5 简单名称
20.9.6 成员访问
20.9.7 方法调用
20.10 右移语法变化
第21章 匿名方法
21.1 匿名方法表达式
21.2 匿名方法签名
21.3 匿名方法转换
21.4 匿名方法块
21.5 外层变量
21.5.1 捕获的外层变量
21.5.2 局部变量实例化
21.6 匿名方法计算
21.7 委托实例相等性
21.8 明确赋值
21.9 方法组转换
21.10 委托创建表达式
21.11 实现示例
第22章 迭代器
22.1 迭代器块
22.1.1 枚举器接口
22.1.2 可枚举接口
22.1.3 产生类型
22.1.4 this访问
22.2 枚举器对象
22.2.1 MoveNext方法
22.2.2 Current属性
22.2.3 Dispose方法
22.3 可枚举对象
GetEnumerator方法
22.4 yield语句
明确赋值
22.5 实现示例
第23章 分部类型
23.1 分部声明
23.1.1 属性
23.1.2 修饰符
23.1.3 类型参数和约束
23.1.4 基类
23.1.5 基接口
23.1.6 成员
23.2 名称绑定
第24章 可空类型
24.1 可空类型
24.1.1 成员
24.1.2 默认值
24.1.3 值类型约束
24.2 转换
24.2.1 null字面值转换
24.2.2 可空转换
24.2.3 装箱和拆箱转换
24.2.4 允许的用户自定义转换
24.2.5 用户自定义转换的计算
24.2.6 提升的转换
24.2.7 用户自定义的隐式转换
24.2.8 用户自定义的显式转换
24.3 表达式
24.3.1 提升运算符
24.3.2 允许的用户自定义
24.3.2 运算符
24.3.3 运算符重载决策
24.3.4 相等操作符和空
24.3.5 is运算符
24.3.6 as运算符
24.3.7 复合赋值
24.3.8 bool?类型
24.3.9 空合并运算符
第25章 其他功能
25.1 属性访问器的可访问性
25.1.1 访问器声明
25.1.2 访问器的使用
25.1.3 重写和接口实现
25.2 静态类
25.2.1 静态类声明
25.2.2 引用静态类类型
25.3 命名空间别名限定符
25.3.1 限定的别名成员
25.3.2 别名的唯一性
25.4 extern别名
extern别名指令
25.5 pragma指令
pragma warning
25.6 默认值表达式
25.7 条件特性类
25.8 固定大小缓冲区
25.8.1 固定大小缓冲区的声明
25.8.2 表达式中的固定大小
25.8.2 缓冲区
25.8.3 Fixed语句
25.8.4 明确赋值检查
第三篇 附录
附录A 文档注释
附录B 语法
索引
第一篇 C# 1.0
第1章 C#简介
1.1 Hello World
1.2 程序结构
1.3 类型和变量
1.4 表达式
1.5 语句
1.6 类和对象
1.6.1 成员
1.6.2 可访问性
1.6.3 基类
1.6.4 域
1.6.5 方法
1.6.6 其他函数成员
1.7 结构
1.8 数组
1.9 接口
1.10 枚举
1.11 委托
1.12 特性
第2章 词法结构
2.1 程序
2.2 文法
2.2.1 文法表示法
2.2.2 词法文法
2.2.3 句法文法
2.3 词法分析
2.3.1 行终结符
2.3.2 空白
2.3.3 注释
2.4 标记
2.4.1 Unicode字符转义序列
2.4.2 标识符
2.4.3 关键字
2.4.4 字面值
2.4.5 运算符和标点
2.5 预处理指令
2.5.1 条件编译符号
2.5.2 预处理表达式
2.5.3 声明指令
2.5.4 条件编译指令
2.5.5 诊断指令
2.5.6 区域指令
2.5.7 行指令
第3章 基本概念
3.1 应用程序启动
3.2 应用程序终止
3.3 声明
3.4 成员
3.4.1 命名空间成员
3.4.2 结构成员
3.4.3 枚举成员
3.4.4 类成员
3.4.5 接口成员
3.4.6 数组成员
3.4.7 委托成员
3.5 成员访问
3.5.1 已声明可访问性
3.5.2 可访问域
3.5.3 实例成员的受保护访问
3.5.4 可访问性约束
3.6 签名和重载
3.7 范围
名称隐藏
3.8 命名空间和类型名称
完全限定名
3.9 自动内存管理
3.10 执行顺序
第4章 类型
4.1 值类型
4.1.1 System.ValueType类型
4.1.2 默认构造函数
4.1.3 结构类型
4.1.4 简单类型
4.1.5 整型
4.1.6 浮点型
4.1.7 decimal类型
4.1.8 bool类型
4.1.9 枚举类型
4.2 引用类型
4.2.1 类类型
4.2.2 对象类型
4.2.3 string类型
4.2.4 接口类型
4.2.5 数组类型
4.2.6 委托类型
4.3 装箱和拆箱
4.3.1 装箱转换
4.3.2 拆箱转换
第5章 变量
5.1 变量类别
5.1.1 静态变量
5.1.2 实例变量
5.1.3 数组元素
5.1.4 值参数
5.1.5 引用参数
5.1.6 输出参数
5.1.7 局部变量
5.2 默认值
5.3 明确赋值
5.3.1 初始已赋值变量
5.3.2 初始未赋值变量
5.3.3 确定是否明确赋值的细则
5.4 变量引用
5.5 变量引用的原子性
第6章 转换
6.1 隐式转换
6.1.1 标识转换
6.1.2 隐式数值转换
6.1.3 隐式枚举转换
6.1.4 隐式引用转换
6.1.5 装箱转换
6.1.6 隐式常量表达式转换
6.1.7 用户自定义的隐式转换
6.2 显式转换
6.2.1 显式数值转换
6.2.2 显式枚举转换
6.2.3 显式引用转换
6.2.4 拆箱转换
6.2.5 用户自定义的显式转换
6.3 标准转换
6.3.1 标准隐式转换
6.3.2 标准显式转换
6.4 用户自定义的转换
6.4.1 允许的用户自定义转换
6.4.2 用户自定义转换的计算
6.4.3 用户自定义的隐式转换
6.4.4 用户自定义的显式转换
第7章 表达式
7.1 表达式的分类
表达式的值
7.2 运算符
7.2.1 运算符的优先级和结合性
7.2.2 运算符重载
7.2.3 一元运算符重载决策
7.2.4 二元运算符重载决策
7.2.5 候选用户自定义运算符
7.2.6 数值提升
7.3 成员查找
基类型
7.4 函数成员
7.4.1 自变量列表
7.4.2 重载决策
7.4.3 函数成员调用
7.5 基本表达式
7.5.1 字面值
7.5.2 简单名称
7.5.3 带括号的表达式
7.5.4 成员访问
7.5.5 调用表达式
7.5.6 元素访问
7.5.7 this访问
7.5.8 base访问
7.5.9 后缀增量和后缀减量
7.5.9 运算符
7.5.10 new运算符
7.5.11 typeof运算符
7.5.12 checked和unchecked
7.5.12 运算符
7.6 一元运算符
7.6.1 一元加运算符
7.6.2 一元减运算符
7.6.3 逻辑求反运算符
7.6.4 按位求补运算符
7.6.5 前缀增量和减量运算符
7.6.6 强制转换表达式
7.7 算术运算符
7.7.1 乘法运算符
7.7.2 除法运算符
7.7.3 余数运算符
7.7.4 加法运算符
7.7.5 减法运算符
7.8 移位运算符
7.9 关系和类型测试运算符
7.9.1 整数比较运算符
7.9.2 浮点比较运算符
7.9.3 小数比较运算符
7.9.4 布尔相等运算符
7.9.5 枚举比较运算符
7.9.6 引用类型相等运算符
7.9.7 字符串相等运算符
7.9.8 委托相等运算符
7.9.9 is运算符
7.9.10 as运算符
7.10 逻辑运算符
7.10.1 整数逻辑运算符
7.10.2 枚举逻辑运算符
7.10.3 布尔逻辑运算符
7.11 条件逻辑运算符
7.11.1 布尔条件逻辑运算符
7.11.2 用户自定义的条件
7.11.2 逻辑运算符
7.12 条件运算符
7.13 赋值运算符
7.13.1 简单赋值
7.13.2 复合赋值
7.13.3 事件赋值
7.14 表达式
7.15 常量表达式
7.16 布尔表达式
第8章 语句
8.1 结束点和可到达性
8.2 块
语句列表
8.3 空语句
8.4 标记语句
8.5 声明语句
8.5.1 局部变量声明
8.5.2 局部常量声明
8.6 表达式语句
8.7 选择语句
8.7.1 if语句
8.7.2 switch语句
8.8 迭代语句
8.8.1 while语句
8.8.2 do语句
8.8.3 for语句
8.8.4 foreach语句
8.9 跳转语句
8.9.1 break语句
8.9.2 continue语句
8.9.3 goto语句
8.9.4 return语句
8.9.5 throw语句
8.10 try语句
8.11 checked语句和unchecked
8.11 语句
8.12 lock语句
8.13 using语句
第9章 命名空间
9.1 编译单元
9.2 命名空间声明
9.3 using指令
9.3.1 using别名指令
9.3.2 using命名空间指令
9.4 命名空间成员
9.5 类型声明
第10章 类
10.1 类声明
10.1.1 类修饰符
10.1.2 类基规范
10.1.3 类主体
10.2 类成员
10.2.1 继承
10.2.2 new修饰符
10.2.3 访问修饰符
10.2.4 构成类型
10.2.5 静态成员和实例成员
10.2.6 嵌套类型
10.2.7 保留成员名称
10.3 常量
10.4 域
10.4.1 静态域和实例域
10.4.2 只读域
10.4.3 易失域
10.4.4 域初始化
10.4.5 变量初始值设定项
10.5 方法
10.5.1 方法参数
10.5.2 静态方法和实例方法
10.5.3 虚方法
10.5.4 重写方法
10.5.5 密封方法
10.5.6 抽象方法
10.5.7 外部方法
10.5.8 方法主体
10.5.9 方法重载
10.6 属性
10.6.1 静态属性和实例属性
10.6.2 访问器
10.6.3 虚、密封、重写和
10.6.3 抽象访问器
10.7 事件
10.7.1 类似域的事件
10.7.2 事件访问器
10.7.3 静态事件和实例事件
10.7.4 虚、密封、重写和
10.7.4 抽象访问器
10.8 索引器
索引器重载
10.9 运算符
10.9.1 一元运算符
10.9.2 二元运算符
10.9.3 转换运算符
10.10 实例构造函数
10.10.1 构造函数初始值
10.10.1 设定项
10.10.2 实例变量初始值
10.10.2 设定项
10.10.3 构造函数的执行
10.10.4 默认构造函数
10.10.5 私有构造函数
10.10.6 可选的实例构造函数
10.10.6 参数
10.11 静态构造函数
10.12 析构函数
第11章 结构
11.1 结构声明
11.1.1 结构修饰符
11.1.2 结构接口
11.1.3 结构主体
11.2 结构成员
11.3 类和结构的区别
11.3.1 值语义
11.3.2 继承
11.3.3 赋值
11.3.4 默认值
11.3.5 装箱和拆箱
11.3.6 this的意义
11.3.7 域初始值设定项
11.3.8 构造函数
11.3.9 析构函数
11.3.10 静态构造函数
11.4 结构示例
11.4.1 数据库整型
11.4.2 数据库布尔类型
第12章 数组
12.1 数组类型
System.Array类型
12.2 数组创建
12.3 数组元素访问
12.4 数组成员
12.5 数组协变
12.6 数组初始值设定项
第13章 接口
13.1 接口声明
13.1.1 接口修饰符
13.1.2 基接口
13.1.3 接口主体
13.2 接口成员
13.2.1 接口方法
13.2.2 接口属性
13.2.3 接口事件
13.2.4 接口索引器
13.2.5 接口成员访问
13.3 完全限定接口成员名
13.4 接口实现
13.4.1 显式接口成员实现
13.4.2 接口映射
13.4.3 接口实现继承
13.4.4 接口重新实现
13.4.5 抽象类和接口
第14章 枚举
14.1 枚举声明
14.2 枚举修饰符
14.3 枚举成员
14.4 System.Enum类型
14.5 枚举的值和运算
第15章 委托
15.1 委托声明
15.2 委托实例化
15.3 委托调用
第16章 异常
16.1 导致异常的原因
16.2 System.Exception类
16.3 异常的处理方式
16.4 公共异常类
第17章 特性
17.1 特性类
17.1.1 特性用法
17.1.2 定位和命名参数
17.1.3 特性参数类型
17.2 特性专用化
17.3 特性实例
17.3.1 特性的编译
17.3.2 特性实例的运行时检索
17.4 保留的特性
17.4.1 AttributeUsage特性
17.4.2 Conditional特性
17.4.3 Obsolete特性
17.5 交互操作的特性
17.5.1 与COM和Win32组件
17.5.1 的交互操作
17.5.2 与其他.NET语言的
17.5.2 交互操作
第18章 不安全代码
18.1 不安全上下文
18.2 指针类型
18.3 固定变量和
18.3 可移动变量
18.4 指针转换
18.5 表达式中的指针
18.5.1 指针间接寻址
18.5.2 指针成员访问
18.5.3 指针元素访问
18.5.4 address-of运算符
18.5.5 指针递增和递减
18.5.6 指针算法
18.5.7 指针比较
18.5.8 sizeof运算符
18.6 固定语句
18.7 堆栈分配
18.8 动态内存分配
第二篇 C#2.0
第19章 C#2.0简介
19.1 泛型
19.1.1 为什么要使用泛型
19.1.2 创建和使用泛型
19.1.3 泛型类型实例化
19.1.4 约束
19.1.5 泛型方法
19.2 匿名方法
方法组转换
19.3 迭代器
19.4 分部类型
19.5 可空类型
第20章 泛型
20.1 泛型类声明
20.1.1 类型参数
20.1.2 实例类型
20.1.3 基规范
20.1.4 泛型类的成员
20.1.5 泛型类中的静态域
20.1.6 泛型类中的静态构造
20.1.6 函数
20.1.7 访问受保护成员
20.1.8 泛型类中的重载
20.1.9 参数数组方法和类型
20.1.9 参数
20.1.10 重写与泛型类
20.1.11 泛型类中的运算符
20.1.12 泛型类中的嵌套类型
20.1.13 应用程序入口点
20.2 泛型结构声明
20.3 泛型接口声明
20.3.1 所实现接口的唯一性
20.3.2 显式接口成员实现
20.4 泛型委托声明
20.5 构造类型
20.5.1 类型自变量
20.5.2 开放和封闭类型
20.5.3 构造类型的基类和接口
20.5.4 构造类型的成员
20.5.5 构造类型的可访问性
20.5.6 转换
20.5.7 using别名指令
20.5.8 属性
20.5.9 数组和泛型IList接口
20.6 泛型方法
20.6.1 泛型方法签名
20.6.2 虚泛型方法
20.6.3 调用泛型方法
20.6.4 类型自变量推断
20.6.5 语法多义性
20.6.6 通过委托使用泛型方法
20.6.7 不能是泛型的成员
20.7 约束
20.7.1 满足约束
20.7.2 类型参数上的成员查找
20.7.3 类型参数和装箱
20.7.4 涉及类型参数的转换
20.8 表达式和语句
20.8.1 对象创建表达式
20.8.2 typeof运算符
20.8.3 引用相等运算符
20.8.4 is运算符
20.8.5 as运算符
20.8.6 异常语句
20.8.7 lock语句
20.8.8 using语句
20.8.9 foreach 语句
20.9 查找规则的修改
20.9.1 命名空间和类型名称
20.9.2 成员查找
20.9.3 适用函数成员
20.9.4 更好的函数成员
20.9.5 简单名称
20.9.6 成员访问
20.9.7 方法调用
20.10 右移语法变化
第21章 匿名方法
21.1 匿名方法表达式
21.2 匿名方法签名
21.3 匿名方法转换
21.4 匿名方法块
21.5 外层变量
21.5.1 捕获的外层变量
21.5.2 局部变量实例化
21.6 匿名方法计算
21.7 委托实例相等性
21.8 明确赋值
21.9 方法组转换
21.10 委托创建表达式
21.11 实现示例
第22章 迭代器
22.1 迭代器块
22.1.1 枚举器接口
22.1.2 可枚举接口
22.1.3 产生类型
22.1.4 this访问
22.2 枚举器对象
22.2.1 MoveNext方法
22.2.2 Current属性
22.2.3 Dispose方法
22.3 可枚举对象
GetEnumerator方法
22.4 yield语句
明确赋值
22.5 实现示例
第23章 分部类型
23.1 分部声明
23.1.1 属性
23.1.2 修饰符
23.1.3 类型参数和约束
23.1.4 基类
23.1.5 基接口
23.1.6 成员
23.2 名称绑定
第24章 可空类型
24.1 可空类型
24.1.1 成员
24.1.2 默认值
24.1.3 值类型约束
24.2 转换
24.2.1 null字面值转换
24.2.2 可空转换
24.2.3 装箱和拆箱转换
24.2.4 允许的用户自定义转换
24.2.5 用户自定义转换的计算
24.2.6 提升的转换
24.2.7 用户自定义的隐式转换
24.2.8 用户自定义的显式转换
24.3 表达式
24.3.1 提升运算符
24.3.2 允许的用户自定义
24.3.2 运算符
24.3.3 运算符重载决策
24.3.4 相等操作符和空
24.3.5 is运算符
24.3.6 as运算符
24.3.7 复合赋值
24.3.8 bool?类型
24.3.9 空合并运算符
第25章 其他功能
25.1 属性访问器的可访问性
25.1.1 访问器声明
25.1.2 访问器的使用
25.1.3 重写和接口实现
25.2 静态类
25.2.1 静态类声明
25.2.2 引用静态类类型
25.3 命名空间别名限定符
25.3.1 限定的别名成员
25.3.2 别名的唯一性
25.4 extern别名
extern别名指令
25.5 pragma指令
pragma warning
25.6 默认值表达式
25.7 条件特性类
25.8 固定大小缓冲区
25.8.1 固定大小缓冲区的声明
25.8.2 表达式中的固定大小
25.8.2 缓冲区
25.8.3 Fixed语句
25.8.4 明确赋值检查
第三篇 附录
附录A 文档注释
附录B 语法
索引
猜您喜欢