标题：VisualC#2008从入门到精通
版权信息
书 名: VisualC#2008从入门到精通
作　者：(英国)(Johnsharp)夏普
出版社： 清华大学出版社
出版时间： 2009
ISBN: 9787302188414
开本： 16
定价: 69.00 元
内容简介
书中沿袭深受读者欢迎的StepbyStep风格，通过丰富的练习引导读者逐步构建Windows应用程序，访问SQLServer数据库，开发ASP NET Web应用程序，创建并使用Web服务等。全书共六部分30章，结构清晰，叙述清楚。所有练习均在VisualStudio2008简体中文版上进行过全面演练。无论是刚开始接触面向对象编程的新手，还是打算转移到C#的具有C，C++或者Java基础的程序员，都可以从
作者简介
John　Sharp，contentMaster首席技术专家。contentMaster隶属于cM集团，cM集团是英国一家从事技术文档创作和咨询的专业公司。JohnSharp是负责．N盯Framework和互操作性性问题的专家，已经针对分布式系统、web服务和c#语言发布了大量相关的教程、白皮书和演示文档。他具有丰富的技术背景和写作经验，出版过多部畅销书。MicrosoftWindow,sCommunicationFoundationStepbyStep便是其中之一。
周靖，从1983年接触苹果机开始，“浸梁”IT业数十年，涉猎广泛。具有深厚的技术功底和良好的文学素养。早期痴迷于硬件。曾担任《微型计算机》杂志特约作者多年。继而潜心钻研编程，并乐在其中，积累了丰富的经验。其翻译风格严谨、准确、朴实、流畅，深受读者欢迎。代表译著有《c++面向对象程序设计》（国内销量超过3万册）、《c#高级程序员指南》和《Windows核心编程》等。
编辑推荐
《VisualC#2008从入门到精通》沿袭深受读者欢迎的StepbyStep典写作风格
资深专家JohnSharp,再度演绎更SHARP的C#
覆盖面广，知识点新，在讲透C基础知识的同时充分展示C#新增特性
风靡全球，指导读者高效开发c#组件和windOWS应用程序的最佳指南
透过《VisualC#2008从入门到精通》，读者可在专家的悉心指导下学习并掌握Visualc#2008基础知识，一次一个步骤，循序渐进地掌握c#编程技术，从而开发出优秀的c#组件和windows应用程序。
《VisualC#2008从入门到精通》重要主题：
声明变量，编写语句，创建操作符和调用方法
捕捉和处理异常
通过析构函数和垃圾回收机制来管理资源
定义属性和索引器，处理事件
使用泛型来定义类型安全的类和集合
通过ADO NET和语言集成查询(LINQ)来操作数据
创建交互式web应用程序，构建web服务
目录
第I部分 Visual C#和Visual Studio 2008概述
第1章 欢迎进入C#编程世界3
1.1 开始在Visual Studio 2008环境中编程3
1.2 编写第一个程序7
1.3 使用命名空间12
1.4 创建图形应用程序14
第1章快速参考23
第2章 使用变量、操作符和表达式25
2.1 理解语句25
2.2 使用标识符26
2.3 标识关键字26
2.4 使用变量27
2.4.1 命名变量27
2.4.2 声明变量28
2.5 使用基本数据类型28
2.6 使用算术操作符33
2.6.1 操作符和数据类型33
2.6.2 深入了解算术操作符34
2.6.3 控制优先级37
2.6.4 使用结合性对表达式进行求值37
2.6.5 结合性和赋值操作符38
2.7 变量的递增和递减38
2.8 声明隐式类型的局部变量40
第2章快速参考41
第3章 方法和作用域42
3.1 声明方法42
3.1.1 指定方法声明语法42
3.1.2 写return语句43
3.2 调用方法45
3.3 使用作用域47
3.3.1 定义局部作用域47
3.3.2 定义类的作用域48
3.3.3 重载方法49
3.4 编写方法49
第3章快速参考56
第4章 使用决策语句57
4.1 声明布尔变量57
4.2 使用布尔操作符58
4.2.1 理解相等和关系操作符58
4.2.2 理解条件逻辑操作符58
4.2.3 操作符的优先级和结合性总结60
4.3 使用if语句来做出决策60
4.3.1 理解if语句的语法61
4.3.2 使用代码块来对语句进行分组62
4.3.3 嵌套if语句62
4.4 使用switch语句67
4.4.1 理解switch语句的语法67
4.4.2 遵守switch语句的规则68
第4章快速参考71
第5章 使用复合赋值和循环语句73
5.1 使用复合赋值操作符73
5.2 使用while语句74
5.3 编写for语句78
5.4 编写do语句80
第5章快速参考87
第6章 管理错误和异常88
6.1 处理错误88
6.2 尝试代码和捕捉异常88
6.2.1 处理异常89
6.2.2 未处理的异常89
6.2.3 使用多个catch处理程序90
6.2.4 捕捉多个异常91
6.3 使用checked和unchecked整数运算95
6.3.1 编写checked语句95
6.3.2 编写checked表达式96
6.4 抛出异常97
6.5 使用finally块101
第6章快速参考102
第II部分 理解C#语言
第7章 创建并管理类和对象107
7.1 理解分类107
7.2 封装的目的108
7.3 定义并使用类108
7.4 控制可访问性109
7.5 使用构造函数110
7.6 理解static方法和数据118
7.6.1 创建共享字段119
7.6.2 使用const关键字来创建static字段120
第7章快速参考124
第8章 理解值和引用126
8.1 复制值类型的变量和类126
8.2 理解null值和可空值130
8.2.1 使用可空类型131
8.2.2 理解可为空类型的属性132
8.3 使用ref和out参数132
8.3.1 创建ref参数133
8.3.2 创建out参数134
8.4 计算机内存的组织方式136
8.5 System.Object类137
8.6 装箱138
8.7 拆箱139
8.8 数据类型的安全转换140
8.8.1 is操作符140
8.8.2 as操作符141
第8章快速参考143
第9章 使用枚举和结构来创建值类型145
9.1 使用枚举145
9.1.1 声明枚举145
9.1.2 使用枚举146
9.1.3 选择枚举文字常量值146
9.1.4 选择枚举的基本类型147
9.2 使用结构149
9.2.1 声明结构151
9.2.2 理解结构和类的区别152
9.2.3 声明结构变量153
9.2.4 理解结构的初始化154
9.2.5 复制结构变量155
第9章快速参考158
第10章 使用数组和集合160
10.1 什么是数组160
10.1.1 声明数组变量160
10.1.2 创建数组实例161
10.1.3 初始化数组变量162
10.1.4 创建隐式类型转换的数组163
10.1.5 访问单独的数组元素163
10.1.6 遍历数组164
10.1.7 复制数组165
10.2 什么是集合类166
10.2.1 ArrayList集合类168
10.2.2 Queue集合类170
10.2.3 Stack集合类170
10.2.4 Hashtable集合类171
10.2.5 SortedList集合类172
10.2.6 使用集合初始值列表173
10.2.7 比较数组和集合174
10.2.8 使用集合类来玩牌174
第10章快速参考179
第11章 理解参数数组180
11.1 使用数组参数181
11.1.1 声明params数组182
11.1.2 使用params object[]183
11.1.3 Console.WriteLine方法184
11.1.4 使用params数组185
第11章快速参考188
第12章 使用继承189
12.1 什么是继承189
12.2 使用继承190
12.2.1 基类和派生类190
12.2.2 调用基类构造函数191
12.2.3 类的赋值193
12.2.4 声明new方法194
12.2.5 声明virtual方法195
12.2.6 声明override方法196
12.2.7 理解protected访问199
12.3 理解扩展方法204
第12章快速参考207
第13章 创建接口和定义抽象类209
13.1 理解接口209
13.2 接口的限制210
13.2.1 实现接口211
13.2.2 通过接口来引用一个类212
13.2.3 使用多个接口213
13.3 抽象类213
13.4 密封类215
13.5 实现可扩展的框架216
13.6 总结关键字组合223
第13章快速参考224
第14章 使用垃圾回收和资源管理225
14.1 对象的生存期225
14.1.1 编写析构函数226
14.1.2 为什么要使用垃圾回收器228
14.1.3 垃圾回收器的工作机理229
14.1.4 慎用析构函数229
14.2 资源管理230
14.2.1 disposal方法230
14.2.2 异常安全的disposal方法230
14.2.3 using语句231
14.2.4 从析构函数中调用Dispose方法233
14.3 使代码为异常安全的234
第14章快速参考236
第III部分 创 建 组 件
第15章 实现属性以访问字段241
15.1 使用方法来实现封装241
15.2 什么是属性243
15.2.1 使用属性244
15.2.2 只读属性245
15.2.3 只写属性245
15.2.4 属性的可访问性246
15.3 理解属性的局限性247
15.4 在接口中声明属性248
15.5 生成自动属性251
15.6 使用属性来初始化对象252
第15章快速参考256
第16章 使用索引器259
16.1 什么是索引器259
16.1.1 没有使用索引器的例子259
16.1.2 使用索引器的同一个例子261
16.1.3 理解索引器的accessor262
16.1.4 对比索引器和数组263
16.2 接口中的索引器265
16.3 在Windows应用程序中使用索引器266
第16章快速参考271
第17章 中断程序流程并处理事件272
17.1 声明和使用委托272
17.1.1 自动化工厂的例子273
17.1.2 不使用委托来实现工厂273
17.1.3 使用委托来实现工厂274
17.1.4 使用委托276
17.2 Lambda表达式和委托279
17.2.1 创建方法适配器279
17.2.2 将lambda表达式作为适配器使用280
17.2.3 lambda表达式的形式281
17.3 启用事件通知282
17.3.1 声明事件282
17.3.2 订阅事件283
17.4 取消订阅事件284
17.5 理解WPF用户界面事件285
第17章快速参考288
第18章 泛型概述291
18.1 object存在的问题291
18.2 泛型解决方案293
18.2.1 对比泛型类与泛化类295
18.2.2 泛型和约束295
18.3 创建泛型类295
18.3.1 二叉树理论295
18.3.2 使用泛型来构造二叉树类298
18.4 创建泛型方法307
第18章快速参考310
第19章 枚举集合311
19.1 枚举集合中的元素311
19.1.1 手动实现枚举器312
19.1.2 实现IEnumerable接口316
19.2 使用迭代器来实现枚举器318
19.2.1 一个简单的迭代器318
19.2.2 使用迭代器为Tree类定义枚举器320
第19章快速参考322
第20章 使用查询表达式来查询内存中的数据324
20.1 什么是语言集成查询324
20.2 在C#应用程序中使用LINQ325
20.2.1 选择数据326
20.2.2 筛选数据329
20.2.3 排序、分组和聚合数据329
20.2.4 联接数据331
20.2.5 使用查询操作符333
20.2.6 查询Tree对象中的数据334
20.2.7 LINQ和推迟求值339
第20章快速参考343
第21章 操作符重载345
21.1 理解操作符345
21.1.1 操作符的限制345
21.1.2 重载的操作符346
21.1.3 创建对称操作符347
21.2 理解复合赋值349
21.3 声明递增操作符和递减操作符350结构和类中的操作符351
21.4 定义操作符对352
21.5 实现一个操作符353
21.6 理解转换操作符355
21.6.1 提供内建转换355
21.6.2 实现用户自定义的转换操作符356
21.6.3 再论创建对称操作符357
21.6.4 添加隐式转换操作符358
第21章快速参考360
第IV部分 操纵Windows应用程序
第22章 Windows Presentation Foundation概述363
22.1 创建WPF应用程序363
22.2 在窗体上添加控件376
22.2.1 使用WPF控件376
22.2.2 动态更改属性384
22.3 处理WPF窗体中的事件388
第22章快速参考392
第23章 使用菜单和对话框394
23.1 菜单设计原则和样式394
23.2 菜单和菜单事件395
23.2.1 创建菜单395
23.2.2 处理菜单事件400
23.3 快捷菜单405
23.4 Windows通用对话框409
第23章快速参考412
第24章 执行校验414
24.1 验证数据414
24.2 示例：客户资料维护415
24.2.1 使用数据绑定来执行校验415
24.2.2 改变校验时机431
第24章快速参考434
第V部分 管 理 数 据
第25章 查询数据库中的信息439
25.1 使用ADO NET查询数据库439
25.1.1 Northwind数据库440
25.1.2 创建数据库440
25.1.3 使用ADO NET查询订单信息442
25.2 使用DLINQ查询数据库450
25.2.1 定义实体类450
25.2.2 创建并运行DLINQ查询452
25.2.3 推迟取回和立即取回454
25.2.4 联接表和创建关系454
25.2.5 再论推迟取回和立即取回458
25.2.6 定义自定义的DataContxt类459
25.2.7 用DLINQ查询订单信息460
第25章快速参考464
第26章 使用数据绑定显示和编辑数据465
26.1 DLINQ和数据绑定465
26.2 用DLINQ修改数据478
26.2.1 更新现有数据478
26.2.2 处理冲突的更新479
26.2.3 添加和删除数据481
第26章快速参考488
第VI部分 构建Web应用程序
第27章 ASP NET概述491
27.1 将Internet作为一个基础结构来理解491
27.1.1 理解Web服务器请求和应答492
27.1.2 管理状态492
27.1.3 理解ASP NET493
27.2 使用ASP NET创建Web应用程序494
27.2 1 构建ASP NET应用程序495
27.2.2 理解Server控件504
27.2.3 创建和使用主题511
第27章快速参考514
第28章 理解Web窗体校验控件515
28.1 服务器端和客户端校验的比较515
28.1.1 在Web服务器校验数据515
28.1.2 在Web浏览器校验数据516
28.1.3 实现客户端校验517
28.2 第28章快速参考523
第29章 保护网站安全并使用Web窗体访问数据524
29.1 理解安全性524
29.1.1 理解基于窗体的安全性524
29.2.2 实现基于窗体的安全性525
29.2 查询和显示数据531
29.2.1 理解Web窗体的GridView控件531
29.2.2 显示客户和订单历史信息532
29.2.3 分页显示数据535
29.3 编辑数据537
29.4 在窗体之间导航538
第29章快速参考544
第30章 创建和使用Web服务546
30.1 Web服务的定义546
30.1.1 SOAP所扮演的角色547
30.1.2 Web 服务描述语言547
30.1.3 Web服务的非功能性需求548
30.1.4 Windows Communication Foundation的角色549
30.2 构建Web服务550
30.3 Web服务、客户端和代理558
30.3.1 支持SOAP：难的方法558
30.3.2 支持SOAP：简单的方法558
30.3.3 消费ProductsService Web服务559
第30章快速参考564
索引565
……