图书目录

目    录

第Ⅰ部分  C# 语 言

第1章  C#简介 3

1.1  什么是.NET Framework 3

1.1.1  .NET Framework的内容 4

1.1.2  用.NET Framework编写应用

   程序 4

1.2  什么是C# 7

1.2.1  用C#能编写什么样的应用

程序 7

1.2.2  本书中的C# 8

1.3  Visual Studio 2008 8

1.3.1  Visual Studio 2008 Express

       产品 9

1.3.2  解决方案 9

1.4  小结 9

第2章  编写C#程序 10

2.1  开发环境 10

2.1.1  Visual Studio 2008 11

2.1.2  Visual C# 2008 Express

Edition 13

2.2  控制台应用程序 13

2.2.1  Solution Explorer 16

2.2.2  Properties窗口 17

2.2.3  Error List窗口 17

2.3  Windows Forms应用程序 18

2.4  小结 22

第3章  变量和表达式 23

3.1  C#的基本语法 23

3.2  C#控制台应用程序的基本

  结构 25

3.3  变量 27

 3.3.1  简单类型 27

3.3.2  变量的命名 31

3.3.3  字面值 32

3.3.4  变量的声明和赋值 33

3.4  表达式 34

3.4.1  数学运算符 34

 3.4.2  赋值运算符 38

3.4.3  运算符的优先级 39

3.4.4  名称空间 39

3.5  小结 42

3.6  练习 43

第4章  流程控制 44

4.1  布尔逻辑 44

4.1.1  位运算符 46

4.1.2  布尔赋值运算符 50

4.1.3  运算符的优先级更新 51

4.2  goto语句 52

4.3  分支 53

4.3.1  三元运算符 53

4.3.2  if语句 54

4.3.3  switch语句 57

4.4  循环 60

4.4.1  do循环 61

4.4.2  while循环 63

4.4.3  for循环 65

4.4.4  循环的中断 69

4.4.5  无限循环 70

4.5  小结 70

4.6  练习 71

第5章  变量的更多内容 72

5.1  类型转换 72

5.1.1  隐式转换 72

5.1.2  显式转换 74

5.1.3  使用Convert命令进行

       显式转换 76

5.2  复杂的变量类型 79

5.2.1  枚举 79

5.2.2  结构 83

5.2.3  数组 86

5.3  字符串的处理 91

5.4  小结 95

5.5  练习 96

第6章  函数 97

6.1  定义和使用函数 98

6.1.1  返回值 99

6.1.2  参数 101

6.2  变量的作用域 107

6.2.1  其他结构中变量的作用域 110

6.2.2  参数和返回值与全局数据 111

6.3  Main()函数 113

6.4  结构函数 114

6.5  函数的重载 115

6.6  委托 117

6.7  小结 119

6.8  练习 120

第7章  调试和错误处理 121

7.1  VS和VCE中的调试 121

7.1.1  非中断(正常)模式下的调试 122

7.1.2  中断模式下的调试 131

7.2  错误处理 139

7.2.1  try...catch...finally 140

7.2.2  列出和配置异常 144

7.2.3  异常处理的注意事项 145

7.3  小结 146

7.4  练习 146

第8章  面向对象编程简介 147

8.1  什么是面向对象编程 147

8.1.1  什么是对象 148

8.1.2  所有的东西都是对象 151

8.1.3  对象的生命周期 151

8.1.4  静态和实例类成员 152

8.2  OOP技术 153

8.2.1  接口 153

8.2.2  继承 155

8.2.3  多态性 156

8.2.4  对象之间的关系 157

8.2.5  运算符重载 159

8.2.6  事件 159

8.2.7  引用类型和值类型 160

8.3  Windows应用程序中的OOP 160

8.4  小结 162

8.5  练习 163

第9章  定义类 164

9.1  C#中的类定义 164

9.2  System.Object 169

9.3  构造函数和析构函数 170

9.4  VS和VCE中的OOP工具 174

9.4.1  Class View窗口 174

9.4.2  对象浏览器 176

9.4.3  添加类 177

9.4.4  类图 177

9.5  类库项目 179

9.6  接口和抽象类 182

9.7  结构类型 184

9.8  小结 186

9.9  练习 186

第10章  定义类成员 187

10.1  成员定义 187

 10.1.1  定义字段 187

 10.1.2  定义方法 188

 10.1.3  定义属性 189

 10.1.4  在类图中添加成员 194

 10.1.5  重制成员 196

 10.1.6  自动属性 197

10.2  类成员的其他议题 197

 10.2.1  隐藏基类方法 198

 10.2.2  调用重写或隐藏的基类方法 199

 10.2.3  嵌套的类型定义 200

10.3  接口的实现 201

10.4  部分类定义 204

10.5  部分方法定义 206

10.6  示例应用程序 207

 10.6.1  规划应用程序 207

 10.6.2  编写类库 208

 10.6.3  类库的客户应用程序 214

10.7  小结 215

10.8  练习 216

第11章  集合、比较和转换 217

11.1  集合 217

 11.1.1  使用集合 218

 11.1.2  定义集合 224

 11.1.3  索引符 225

 11.1.4  给CardLib添加Cards集合 227

 11.1.5  关键字值集合和

                   IDictionary 229

 11.1.6  迭代器 231

 11.1.7  深度复制 236

 11.1.8  给CardLib添加深度复制 238

11.2  比较 239

 11.2.1  类型比较 240

 11.2.2  值比较 244

11.3  转换 259

 11.3.1  重载转换运算符 259

 11.3.2  as运算符 260

11.4  小结 261

11.5  练习 262

第12章  泛型 263

12.1  泛型的概念 263

12.2  使用泛型 264

 12.2.1  可空类型 264

12.2.2  System.Collections.Generic 

         名称空间 271

12.3  定义泛型 279

 12.3.1  定义泛型类 280

 12.3.2  定义泛型接口 291

 12.3.3  定义泛型方法 291

 12.3.4  定义泛型委托 293

12.4  小结 293

12.5  练习 293

第13章  其他OOP技术 295

13.1  ::运算符和全局名称空间

13.2  定制异常 296

 13.2.1  异常基类 297

 13.2.2  给CardLib添加定制异常 297

13.3  事件 298

 13.3.1  什么是事件 298

 13.3.2  使用事件 300

 13.3.3  定义事件 302

13.4  扩展和使用CardLib 309

13.5  小结 317

13.6  练习 317

第14章  C# 3.0语言的改进 318

14.1  初始化器 318

 14.1.1  对象初始化器 319

 14.1.2  集合初始化器 320

14.2  类型推断 323

14.3  匿名类型 325

14.4  扩展方法 328

14.5  ?表达式 333

 14.5.1  复习匿名方法 333

 14.5.2  把?表达式用于匿名方法 334

 14.5.3  ?表达式的参数 337

 14.5.4  ?表达式的语句体 337

 14.5.5  ?表达式用作委托和

         表达式树 338

 14.5.6  ?表达式和集合 339

14.6  小结 342

14.7  练习 342

  第Ⅱ部分  Windows 编 程

第15章  Windows编程基础 347

15.1  控件 347

 15.1.1  属性 348

 15.1.2  控件的定位、停靠和对齐 349

 15.1.3  事件 350

15.2  Button控件 352

 15.2.1  Button控件的属性 352

 15.2.2  Button控件的事件 353

15.3  Label和LinkLabel控件 354

15.4  TextBox控件 355

 15.4.1  TextBox控件的属性 355

 15.4.2  TextBox控件的事件 356

15.5  RadioButton和CheckBox

     控件 363

 15.5.1  RadioButton控件的属性 364

 15.5.2  RadioButton控件的事件 364

 15.5.3  CheckBox控件的属性 364

 15.5.4  CheckBox控件的事件 364

 15.5.5  GroupBox控件 365

15.6  RichTextBox控件 368

 15.6.1  RichTextBox控件的属性 368

 15.6.2  RichTextBox控件的事件 369

15.7  ListBox和CheckedListBox

     控件 374

 15.7.1  ListBox控件的属性 375

 15.7.2  ListBox控件的方法 376

 15.7.3  ListBox控件的事件 376

15.8  ListView控件 378

 15.8.1  ListView控件的属性 378

 15.8.2  ListView控件的方法 380

 15.8.3  ListView控件的事件 381

 15.8.4  ListViewItem 381

 15.8.5  ColumnHeader 381

 15.8.6  ImageList控件 381

15.9  TabControl控件 388

 15.9.1  TabControl控件的属性 389

 15.9.2  使用TabControl控件 389

15.10  小结 392

15.11  练习 392

第16章  Windows Forms的高级功能 393

16.1  菜单和工具栏 393

 16.1.1  两个实质一样的控件 393

 16.1.2  使用MenuStrip控件 394

 16.1.3  手工创建菜单 394

16.1.4  ToolStripMenuItem控件的

         其他属性 397

 16.1.5  给菜单添加功能 397

16.2  工具栏 399

 16.2.1  ToolStrip控件的属性 399

 16.2.2  ToolStrip的项 400

 16.2.3  StatusStrip控件 405

 16.2.4  StatusStripStatusLabel的属性 405

16.3  SDI和MDI应用程序 407

16.4  创建控件 415

 16.4.1  LabelTextbox控件 417

 16.4.2  调试用户控件 420

 16.4.3  扩展LabelTextbox控件 421

16.5  小结 424

16.6  练习 424

第17章  使用通用对话框 425

17.1  通用对话框 425

17.2  如何使用对话框 426

17.3  文件对话框 427

 17.3.1  OpenFileDialog 427

 17.3.2  SaveFileDialog 438

17.4  打印 442

 17.4.1  打印结构 442

 17.4.2  打印多个页面 447

 17.4.3  PageSetupDialog 449

 17.4.4  PrintDialog 451

17.5  打印预览 455

 17.5.1  PrintPreviewDialog 455

 17.5.2  PrintPreviewControl 456

17.6  FontDialog和ColorDialog 457

 17.6.1  FontDialog 457

 17.6.2  ColorDialog 459

 17.6.3  FolderBrowserDialog 460

17.7  小结 461

17.8  练习 461

第18章  部署Windows应用程序 463

18.1  部署概述 463

18.2  ClickOnce部署 464

18.3  Visual Studio安装和部署

项目类型 473

18.4  Microsoft Windows安装程序

     结构 474

 18.4.1  Windows Installer术语 474

 18.4.2  Windows Installer的优点 476

18.5  为SimpleEditor创建安装

     软件包 476

 18.5.1  规划安装内容 476

 18.5.2  创建项目 477

 18.5.3  项目属性 478

 18.5.4  安装编辑器 480

 18.5.5  File System编辑器 481

 18.5.6  File Types编辑器 483

 18.5.7  Launch Condition编辑器 485

 18.5.8  User Interface编辑器 485

18.6  构建项目 488

18.7  安装 489

 18.7.1  Welcome 489

 18.7.2  Read Me 489

 18.7.3  License Agreement 490

 18.7.4  Optional Files 490

 18.7.5  选择安装文件夹 491

 18.7.6  确认安装 492

 18.7.7  进度 492

 18.7.8  结束安装 493

 18.7.9  运行应用程序 493

 18.7.10  卸载 493

18.8  小结 493

18.9  练习 494

  

  第Ⅲ部分  Web 编 程

第19章  Web编程基础 497

19.1  概述 497

19.2  ASP.NET运行库 498

19.3  创建简单的Web页面 498

19.4  服务器控件 504

19.5  事件处理程序 505

19.6  输入的有效性验证 509

19.7  状态管理 512

 19.7.1  客户端的状态管理 513

 19.7.2  服务器端的状态管理 515

19.8  身份验证和授权 517

 19.8.1  身份验证的配置 518

 19.8.2  使用安全控件 522

19.9  读写SQL Server数据库 524

19.10  小结 530

19.11  练习 531

第20章  Web高级编程 532

20.1  母版页 532

20.2  站点导航 537

20.3  用户控件 539

20.4  个性化配置 541

 20.4.1  个性化配置组 543

 20.4.2  组件的个性化配置 543

20.4.3  定制数据类型中的

个性化配置 543

 20.4.4   匿名用户的个性化配置 544

20.5  Web Parts 545

 20.5.1  WebPartManager控件 546

 20.5.2  WebPartZone控件 546

 20.5.3  EditorZone控件 548

 20.5.4  CatalogZone控件 550

 20.5.5  ConnectionsZone控件 551

20.6  JavaScript 554

 20.6.1  Script元素 555

 20.6.2  变量的声明 555

 20.6.3  定义函数 555

 20.6.4  语句 556

 20.6.5  对象 556

20.7  小结 560

20.8  练习 560

第21章  Web服务 561

21.1  Web服务推出之前 561

 21.1.1  远程过程调用(RPC) 562

 21.1.2  SOAP 563

21.2  使用Web服务的场合 563

 21.2.1  宾馆旅行社代理应用程序 564

 21.2.2  图书发布应用程序 564

 21.2.3  客户应用程序的类型 564

 21.2.4  应用程序的体系结构 564

21.3  Web服务的体系结构 565

 21.3.1  可以调用的方法 565

 21.3.2  调用方法 566

 21.3.3  SOAP和防火墙 567

 21.3.4  WS-I基本个性化配置 568

21.4  Web服务和

     .NET Framework 568

 21.4.1  创建Web服务 568

 21.4.2  客户程序 570

21.5  创建简单的ASP.NET Web

     服务 571

21.6  测试Web服务 572

21.7  执行Windows客户程序 574

21.8  异步调用服务 577

21.9  执行ASP.NET客户程序 580

21.10  传送数据 581

21.11  小结 584

21.12  练习 584

第22章  Ajax编程 586

22.1  Ajax概述 586

22.2  UpdatePanel控件 587

22.3  Timer控件 591

22.4  UpdateProgress控件 592

22.5  Web服务 594

22.6  扩展控件 598

22.7  小结 600

22.8  练习 600

第23章  部署Web应用程序 601

23.1  Internet Information Services 601

23.2  IIS配置 602

23.3  复制Web站点 604

23.4  发布Web站点 606

23.5  Windows安装程序 607

 23.5.1  创建安装程序 607

 23.5.2  安装Web 应用程序 609

23.6  小结 610

23.7  练习 610

  第Ⅳ部分  数 据 访 问

第24章  文件系统数据 613

24.1  流 613

24.2  用于输入和输出的类 614

 24.2.1  File类和Directory类 615

 24.2.2  FileInfo类 616

 24.2.3  DirectoryInfo类 617

 24.2.4  路径名和相对路径 618

 24.2.5  FileStream对象 618

 24.2.6  StreamWriter对象 624

 24.2.7  StreamReader对象 626

 24.2.8  读写压缩文件 632

24.3  序列化对象 635

24.4  监控文件结构 639

24.5  小结 645

24.6  练习 646

第25章  XML 647

25.1  XML文档 647

 25.1.1  XML元素 647

 25.1.2  属性 648

 25.1.3  XML声明 649

 25.1.4  XML文档的结构 649

 25.1.5  XML名称空间 650

 25.1.6  格式良好并有效的XML 651

 25.1.7  验证XML文档 651

25.2  在应用程序中使用XML 654

 25.2.1  XML文档对象模型 655

 25.2.2  选择节点 663

25.3  小结 670

25.4  练习 671

第26章  LINQ简介 672

26.1  LINQ的变体 673

26.2  第一个LINQ查询 673

 26.2.1  用var关键字声明结果

                   变量 675

 26.2.2  指定数据源:from子句 675

 26.2.3  指定条件:where子句 675

 26.2.4  指定元素:select子句 676

 26.2.5  完成:使用foreach循环 676

 26.2.6  延迟执行的查询 676

26.3   使用LINQ方法语法和

     ?表达式 676

 26.3.1  LINQ扩展方法 676

 26.3.2  查询语法和方法语法 677

 26.3.3  ?表达式 677

26.4  排序查询结果 679

26.5  orderby子句 680

26.6  用方法语法排序 681

26.7  查询大型数据集 682

26.8  合计运算符 685

26.9  查询复杂的对象 688

26.10  投射:在查询中创建

   新对象 691

26.11  投射:方法语法 693

26.12  单值选择查询 693

26.13  Any和All 694

26.14  多级排序 696

26.15  多级排序方法语法:

     ThenBy 698

26.16  组合查询 698

26.17  Take和Skip 700

26.18  First和FirstOrDefault 702

26.19  集运算符 703

26.20  Join查询 706

26.21  资源和进一步阅读 707

26.22  小结 707

26.23  练习 707

第27章  LINQ to SQL 709

27.1  对象相关映射 709

27.2  安装SQL Server和Northwind

示例数据 710

27.2.1  安装SQL Server Express

2005 710

 27.2.2  安装Northwind示例

         数据库 711

27.3  第一个LINQ to SQL查询 712

27.4  浏览LINQ to SQL关系 717

27.5  进一步探讨LINQ to SQL 720

27.6  LINQ to SQL中的组合、排序

和其他高级查询 723

27.7  显示生成的SQL 725

27.8  用LINQ to SQL绑定数据 729

27.9  用LINQ to SQL更新

   绑定数据 733

27.10  小结 734

27.11  练习 735

第28章  ADO.NET和LINQ over 

         DataSet 736

28.1  ADO.NET概述 736

 28.1.1  ADO.NET名称的来源 737

 28.1.2  ADO.NET的设计目标 738

28.2  ADO.NET类和对象概述 739

 28.2.1  提供者对象 739

 28.2.2  用户对象 740

 28.2.3  使用System.Data名称空间 741

28.3  用DataReader读取数据 742

28.4  用DataSet读取数据 749

 28.4.1  用数据填充DataSet 749

 28.4.2  访问DataSet中的表、

         行和列 749

28.5  更新数据库 752

 28.5.1  给数据库添加行 755

 28.5.2  删除行 761

28.6  在DataSet中访问多个表 762

 28.6.1  ADO.NET中的关系 762

 28.6.2  用关系导航 763

28.7  XML和ADO.NET 770

28.8  ADO.NET中的SQL支持 773

28.8.1  DataAdapter对象中的

                   SQL命令 773

 28.8.2  直接执行SQL命令 776

 28.8.3  调用SQL存储过程 778

28.9  使用LINQ over DataSet和

ADO.NET 780

28.10  小结 784

28.11  练习 784

第29章  LINQ to XML 785

29.1  LINQ to XML函数构造方法 785

29.2  保存和加载XML文档 789

 29.2.1  从字符串中加载XML 791

 29.2.2  已保存的XML文档内容 792

29.3  处理XML片段 792

29.4  通过LINQ to XML生成

     XML 794

29.5  查询XML文档 798

29.6  小结 804

29.7  练习 804

  第Ⅴ部分  其 他 技 术

第30章  属性 809

30.1  什么是属性 809

30.2  反射 812

30.3  内置属性 815

         30.3.1  System.Diagnostics.

        ConditionalAttribute 815

 30.3.2  System.Obsolete

    Attribute 817

 30.3.3  System.Serializable

    Attribute 818

 

 

 30.3.4  System.Reflection

    .AssemblyDelaySign

    Attribute 821

30.4  定制属性 824

 30.4.1  BugFixAttribute 824

 30.4.2  System.AttributeUsage

         Attribute 826

30.5  小结 830

第31章  XML文档说明 831

31.1  添加XML文档说明 831

 31.1.1  XML文档说明的注释 833

 31.1.2  使用类图添加XML

    文档说明 839

 31.1.3  生成XML文档说明文件 842

31.1.4  带有XML文档说明的应用

程序示例 844

31.2  使用XML文档说明 846

 31.2.1  编程处理XML文档说明 846

31.2.2  用XSLT格式化XML

         文档说明 848

 31.2.3  文档说明工具 849

31.3  小结 850

31.4  练习 851

第32章  网络 852

32.1  联网概述 852

 32.1.1  名称的解析 855

 32.1.2  统一资源标识符 856

 32.1.3  TCP和UDP 857

 32.1.4  应用协议 857

32.2  网络编程选项 859

32.3  WebClient 859

32.4  WebRequest和WebResponse 861

32.5  TcpListener和TcpClient 868

32.6  小结 876

32.7  练习 876

第33章  GDI+简介 877

33.1  图形绘制概述 877

 33.1.1  Graphics类 878

 33.1.2  对象的删除 878

 33.1.3  坐标系统 879

 33.1.4  颜色 884

33.2  使用Pen类绘制线条 885

33.3  使用Brush类绘制图形 887

33.4  使用Font 类绘制文本 890

33.5  使用图像进行绘制 893

 33.5.1  使用纹理画笔绘图 895

 33.5.2  使用钢笔绘制图像 897

 33.5.3  双倍缓冲 898

33.6  GDI+的高级功能 900

 33.6.1  剪切 900

 33.6.2  System.Drawing.Drawing2D 901

 33.6.3  System.Drawing.Imaging 901

33.7  小结 901

33.8  练习 902

第 34 章   Windows Presentation 

Foundation 903

34.1  WPF的概念 904

 34.1.1  WPF给设计人员带来的

    好处 904

 34.1.2  WPF给C#开发人员带来的

    好处 906

34.2  基本WPF应用程序的组成 906

34.3  WPF基础 916

 34.3.1  XAML语法 917

 34.3.2  桌面和Web应用程序 919

 34.3.3  Application对象 920

 34.3.4  控件基 920

 34.3.5  控件的布局 928

 34.3.6  控件的样式 936

 34.3.7  触发器 941

 34.3.8  动画 942

 34.3.9  静态和动态资源 944

34.4  用WPF编程 949

 34.4.1  WPF用户控件 950

 34.4.2  实现依赖属性 950

34.5  小结 959

34.6  练习 960

第 35 章   Windows Communication 

Foundation 961

35.1  WCF是什么 961

35.2  WCF概念 962

 35.2.1  WCF通信协议 962

 35.2.2  地址、端点和绑定 963

 35.2.3  合同 964

 35.2.4  消息模式 965

 35.2.5  行为 965

 35.2.6  主机 965

35.3  WCF编程 966

 35.3.1  定义WCF服务合同 973

 35.3.2  自存储的WCF服务 979

35.4  小结 985

35.5  练习 986

第36章  Windows Workflow 

         Foundation 987

36.1  活动 990

 36.1.1  DelayActivity 990

 36.1.2  SuspendActivity 991

 36.1.3  WhileActivity 992

 36.1.4  SequenceActivity 994

 36.1.5  定制活动 997

36.2  工作流运行库 1002

36.3  数据绑 1007

36.4  小结 1010