第1章Visual C# 2010概述 1
1.1 C#语言和NET Framework介绍 1
1.1.1 C#语言 1
1.1.2NET Framework平台体系结构 1
1.2 C# 4.0新特性 2
1.2.1动态查找 3
1.2.2参数命名和可选参数 4
1.2.3 COM互操作特性 6
1.2.4变性 6
1.3 Visual Studio 2010的运行环境及安装 8
1.3.1安装Visual Studio 2010 8
1.3.2选择默认环境设置 10
1.4认识Visual Studio 2010集成开发环境 11
1.4.1菜单栏与工具栏 11
1.4.2解决方案资源管理器 12
1.4.3工具箱和属性窗口 13
1.4.4设计器窗口 13
1.4.5代码编辑器 14
1.4.6对象浏览器 14
第2章 开始Visual C# 2010编程 15
2.1编写“Hello World”程序 15
2.2代码详解 17
2.2.1程序结构 17
2.2.2命名空间和指示符using 18
2.2.3声明类 18
2.2.4声明Main方法 18
2.2.5程序的输入和输出 19
2.2.6注释 20
2.3程序调试 22
2.3.1程序错误类型 23
2.3.2程序调试方法 24
2.4 C#编码规范 25
2.4.1命名惯例 25
2.4.2缩进和间隔规范 26
2.4.3代码注释规范 27
2.4.4异常处理规范 27
2.5编程习惯 28
第3章Visual C# 2010编程基础 32
3.1标识符 32
3.2关键字 33
3.3数据类型 34
3.3.1值类型 34
3.3.2引用类型 40
3.3.3类型转换 45
3.4变量和常量 51
3.4.1声明和使用常量 51
3.4.2声明和使用变量 52
3.4.3变量类型 53
3.4.4变量的作用域 54
3.5运算符 55
3.5.1算术运算符 55
3.5.2关系运算符 56
3.5.3逻辑运算符 57
3.5.4位运算符 58
3.5.5赋值运算符 59
3.5.6其他运算符 60
3.5.7运算符优先级 63
3.6运算符的重载 64
3.7表达式 66
第4章 流程控制语句及预处理 67
4.1选择语句 67
4.1.1 if语句 67
4.1.2 switch语句 70
4.2循环语句 71
4.2.1 while语句 72
4.2.2 do-while语句 72
4.2.3 for语句 73
4.2.4 foreach语句 74
4.3跳转语句 75
4.3.1 break语句 75
4.3.2 continue语句 76
4.3.3 goto语句 77
4.3.4 return语句 78
4.4异常处理语句 79
4.4.1 throw语句 79
4.4.2 try-catch语句 80
4.4.3 try-finally语句 82
4.4.4 try-catch-finally语句 83
4.5预处理器指令 84
4.5.1 #define和#undef 84
4.5.2 #if、 #elif、 #else和#endif 85
4.5.3 #warning和#error 86
4.5.4 #region和#endregion 86
4.5.5 #pragma、 #pragma warning和#pragma checksum 87
4.5.6 #line 88
第5章 面向对象 90
5.1面向对象的基本概念 90
5.1.1一切都是对象 90
5.1.2类的面向对象特性 90
5.2类 91
5.2.1类的声明 91
5.2.2类的修饰符 92
5.2.3类的成员 94
5.2.4类的实例 96
5.3构造函数和析构函数 97
5.3.1构造函数 97
5.3.2析构函数 101
5.4类与结构的比较 102
5.5常量 105
5.5.1静态常量 105
5.5.2动态常量 105
5.6字段 106
5.6.1只读字段 107
5.6.2易失字段 108
5.7属性 109
5.7.1属性的声明 109
5.7.2属性的种类 110
5.8方法 111
5.8.1声明方法 111
5.8.2方法的参数类型 112
5.8.3方法重载 115
5.9索引器 116
第6章 继承 118
6.1继承概述 118
6.2继承规则 119
6.3访问基类成员 120
6.4重写方法 122
6.4.1 override关键字 122
6.4.2 virtual关键字 124
6.4.3 new关键字 126
6.5基于继承的多态性 127
6.6抽象类 130
6.7密封类 131
第7章 接口 133
7.1定义接口 133
7.2接口成员 134
7.2.1接口方法 134
7.2.2接口属性 135
7.2.3接口索引器 137
7.2.4接口事件 138
7.3接口成员访问 141
7.4完全限定接口成员名 143
7.5接口的继承 143
7.6接口实现 144
7.6.1显式接口成员实现 144
7.6.2接口映射 146
7.6.3接口实现继承 149
7.6.4接口重新实现 150
7.7抽象类和接口 151
第8章 数组与集合 155
8.1数组概述 155
8.2声明数组 156
8.3数组初始化 156
8.3.1一维数组的初始化 156
8.3.2多维数组的初始化 157
8.3.3交错数组的初始化 157
8.4数组元素访问 159
8.5数组协方差 160
8.6传递数组参数 161
8.7使用ref和out传递数组 162
8.8动态数组 164
8.9数组的基本操作 167
8.9.1数组的遍历 167
8.9.2数组的排序 167
8.9.3数组元素的添加与删除 168
8.10集合类 169
8.10.1 Queue集合类 170
8.10.2 Stack集合类 171
8.10.3 Hashtable集合类 172
8.10.4 SortedList集合类 173
8.10.5 Dictionary泛型集合 174
第9章 委托与事件 177
9.1委托 177
9.1.1委托声明 177
9.1.2委托创建表达式 179
9.1.3委托实例化 181
9.1.4委托调用 181
9.1.5委托与接口 183
9.1.6委托中的协变和逆变 184
9.1.7合并委托 185
9.2事件 187
9.2.1事件声明 187
9.2.2类似字段的事件 189
9.2.3事件访问器 190
9.2.4在派生类中引发基类事件 191
9.2.5实现接口事件 194
9.2.6使用字典存储事件实例 197
9.2.7实现自定义事件访问器 199
第10章 泛型 201
10.1泛型概述 201
10.2泛型的优点 203
10.3泛型类型参数 205
10.3.1类型参数命名准则 205
10.3.2类型参数的约束 205
10.4泛型类 209
10.5泛型接口 211
10.6泛型方法 216
10.7泛型委托 217
10.8泛型中的默认关键字 218
10.9运行时的泛型 219
10.10泛型和数组 220
10.11泛型和属性 221
10.12 C++模板和C#泛型的区别 222
第11章 反射 223
11.1反射概述 223
11.2仅反射上下文 224
11.3查看类型信息 224
11.3.1 System Type和ConstructorInfo 225
11.3.2 MemberInfo、 MethodInfo、 FieldInfo和Property Info 226
11.4访问默认成员 229
11.5访问自定义属性 230
11.6使用反射将委托挂钩 231
第12章Windows窗体与控件 233
12.1 Windows窗体 233
12.1.1创建Windows窗体 233
12.1.2在项目中添加窗体 235
12.2 Windows窗体控件 236
12.2.1控件的分类 236
12.2.2控件的基本操作 238
12.2.3命令控件 239
12.2.4设置选项控件 241
12.2.5列表选择控件 244
12.2.6编辑文本控件 247
12.2.7显示信息控件 250
12.2.8日期选择控件 252
12.2.9弹出式信息控件 254
12.2.10图像控件 256
12.2.11容器控件 257
12.3对话框控件 259
12.3.1 ColorDialog控件 259
12.3.2 FontDialog控件 260
12.3.3 OpenFileDialog控件 260
12.3.4 PrintDialog控件 261
12.3.5 FolderBrowserDialog控件 261
12.3.6 SaveFileDialog控件 262
12.4菜单和工具栏控件 262
12.4.1 MenuStrip控件 262
12.4.2 ContextMenuStrip控件 263
12.4.3 ToolStrip控件 264
12.4.4 ToolStripContainer控件 264
第13章 基本应用 266
13.1典型的应用程序 266
13.1.1 Windows应用程序 266
13.1.2控制台应用程序 270
13.2文档和视图 271
13.2.1文档和视图的概念 271
13.2.2实现一个简单多文档编辑器 272
13.3绘图 274
13.3.1 C#绘图机制 274
13.3.2绘制简单的线条 275
13.3.3绘制几何图形和呈现图像 278
13.3.4绘制文本 280
13.4动态链接库(DLL) 281
13.4.1 DLL概述 281
13.4.2创建和使用DLL 282
13.4.3调试DLL 286
13.5多任务编程 287
13.5.1进程与线程的概念 287
13.5.2多线程编程的困难 287
13.5.3进程控制 288
13.5.4线程控制 291
13.5.5线程同步 293
第14章 数据库编程 297
14.1 ADONET概述 297
14.1.1数据库与ADONET 297
14.1.2关于ADONET的类 299
14.1.3 Windows应用程序与ADONET 305
14.2 ADONET应用 307
14.2.1用DataReader从数据库中读取数据 308
14.2.2用DataSet从数据库中读取数据 309
14.2.3更新数据库的内容 310
14.2.4访问数据集中的多个表 312
14.2.5深入理解ADO.NET中的SQL语句 314
14.2.6数据绑定 316
第15章 网络通信编程 320
15.1.NET Framework中的请求和响应 320
15.2 TCP/IP协议 321
15.2.1 IP协议 321
15.2.2 TCP协议 322
15.3使用TcpListener和TcpClient收发信息 323
15.3.1同步、异步、阻塞和非阻塞 323
15.3.2使用TcpListener与TcpClient 323
15.3.3使用Socket类代替TcpListener和TcpClient 327
15.4典型的网络应用 329
15.4.1下载网页 330
15.4.2上传和下载文件 332
15.4.3接收电子邮件信息 334
15.4.4实现Ping命令 338
参考文献 346