1、目录第部分 C# 语 言第 1 章 .NET 体系结构 . 31.1 C#与.NET 的关系 . 31.2 公共语言运行库 . 31.3 详细介绍中间语言 . 61.3.1 面向对象和接口的支持 . 71.3.2 相异值类型和引用类型 . 81.3.3 强数据类型 . 81.3.4 通过异常方法处理错误 . 141.3.5 特性的使用 . 141.4 程序集 . 141.4.1 私有程序集 . 151.4.2 共享程序集 . 161.4.3 反射 . 161.5 .NET Framework 类 . 161.6 命名空间 . 171.7 用 C#创建.NET 应用程序 . 181.7.1 创建
2、 ASP.NET 应用程序 . 181.7.2 创建 Windows 窗体 . 201.7.3 Windows 控件 . 201.7.4 Windows 服务 . 201.8 C#在.NET 企业体系结构中的作用 . 201.9 小结 . 22第 2 章 C#基础 . 232.1 引言 . 232.2 第一个 C#程序 . 232.2.1 代码 . 242.2.2 编译并运行程序 . 242.2.3 详细介绍 . 252.3 变量 . 272.3.1 变量的初始化 . 272.3.2 变量的作用域 . 282.3.3 常量 . 312.4 预定义数据类型 . 322.4.1 值类型和引用类型
3、. 322.4.2 CTS 类型 . 332.4.3 预定义的值类型 . 332.4.4 预定义的引用类型 . 362.5 流控制 . 392.5.1 条件语句 . 392.5.2 循环 . 432.5.3 跳转语句 . 462.6 枚举 . 472.7 数组 . 492.8 命名空间 . 502.8.1 using 语句 . 512.8.2 命名空间的别名 . 522.9 Main()方法 . 532.9.1 多个 Main()方法 . 532.9.2 给 Main()方法传送参数 . 542.10 有关编译 C#文件的更多内容 . 552.11 控制台 I/O. 562.12 使用注释 .
4、 582.12.1 源文件中的内部注释 . 582.12.2 XML 文档说明 . 592.13 C#预处理器指令 . 612.13.1 #define 和 #undef. 612.13.2 #if, #elif, #else 和#endif . 622.13.3 #warning 和 # error. 632.13.4 #region 和#endregion . 632.13.5 #line. 642.13.6 #pragma. 642.14 C#编程规则 . 642.14.1 用于标识符的规则 . 642.14.2 用法约定 . 652.15 小结 . 71第 3 章 对象和类型 . 72
5、3.1 类和结构 . 723.2 类成员 . 733.2.1 数据成员 . 733.2.2 函数成员 . 743.2.3 只读字段 . 883.3 结构 . 893.3.1 结构是值类型 . 903.3.2 结构和继承 . 913.3.3 结构的构造函数 . 913.4 部分类 . 923.5 静态类 . 943.6 Object 类 . 943.6.1 System.Object 方法 . 943.6.2 ToString()方法 . 953.7 小结 . 97第 4 章 继承 . 984.1 继承的类型 . 984.1.1 实现继承和接口继承 . 984.1.2 多重继承 . 994.1.
6、3 结构和类 . 994.2 实现继承 . 994.2.1 虚方法 . 1004.2.2 隐藏方法 . 1014.2.3 调用函数的基类版本 . 1024.2.4 抽象类和抽象函数 . 1034.2.5 密封类和密封方法 . 1034.2.6 派生类的构造函数 . 1044.3 修饰符 . 1094.3.1 可见性修饰符 . 1094.3.2 其他修饰符 . 1104.4 接口 . 1114.4.1 定义和实现接口 . 1124.4.2 派生的接口 . 1164.5 小结 . 118第 5 章 运算符和类型强制转换 . 1195.1 运算符 . 1195.1.1 运算符的简化操作 . 1205
7、.1.2 三元运算符 . 1215.1.3 checked 和 unchecked 运 算 符 . 1225.1.4 is 运算符 . 1235.1.5 as 运算符 . 1235.1.6 sizeof 运算符 . 1235.1.7 typeof 运算符 . 1245.1.8 可空类型和运算符 . 1245.1.9 空接合运算符 . 1245.1.10 运算符的优先级 . 1255.2 类型的安全性 . 1255.2.1 类型转换 . 1265.2.2 装箱和拆箱 . 1305.3 对象的相等比较 . 1305.3.1 引用类型的相等比较 . 1315.3.2 值类型的相等比较 . 1325.
8、4 运算符重载 . 1325.4.1 运算符的工作方式 . 1335.4.2 运算符重载的示例:Vector 结构 . 1345.5 用户定义的数据类型转换 . 1415.5.1 执行用户定义的类型转换 . 1425.5.2 多重数据类型转换 . 1495.6 小结 . 152第 6 章 委托和事件 . 1536.1 委托 . 1536.1.1 在 C#中声明委托 . 1546.1.2 在 C#中使用委托 . 1556.2 匿名方法 . 1586.2.1 简单的委托示例 . 1596.2.2 BubbleSorter 示例 . 1616.2.3 多播委托 . 1646.3 事件 . 1666.
9、3.1 从客户的角度讨论事件 . 1676.3.2 生成事件 . 1696.4 小结 . 173第 7 章 内存管理和指针 . 1747.1 后台内存管理 . 1747.1.1 值数据类型 . 1747.1.2 引用数据类型 . 1767.1.3 垃圾收集 . 1787.2 释放未托管的资源 . 1797.2.1 析构函数 . 1797.2.2 IDisposable 接口 . 1807.2.3 实现 IDisposable 接口和析构函数 . 1827.3 不安全的代码 . 1837.3.1 指针 . 1837.3.2 指针示例 PointerPlayaround. 1937.3.3 使用指
10、针优化性能 . 1977.4 小结 . 201第 8 章 字符串和正则表达式 . 2028.1 System.String 类 . 2028.1.1 创建字符串 . 2038.1.2 StringBuilder 成员 . 2068.1.3 格式化字符串 . 2078.2 正则表达式 . 2138.2.1 正则表达式概述 . 2138.2.2 RegularExpressionsPlayaround示例 . 2148.2.3 显示结果 . 2168.2.4 匹配、组合和捕获 . 2188.3 小结 . 220第 9 章 集合 . 2219.1 对象组 . 2219.1.1 集合 . 2229.1.2 数组列表 . 2259.1.3 Stack 类 . 2299.1.4 Queue 类 . 2319.1.5 SortedList 类 . 2329.1.6 字典和散列表 . 2349.1.7 泛型 . 2439.2 小结 . 244第 10 章 泛型 . 24510.1 概述 . 245