《C#宝典》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Jeff Ferguson,(美)Brian Patterson等著;盖江南等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:7505380877
  • 页数:584 页
图书介绍:

前言 1

第1部分 C#语言基础知识 5

第1章 C#概述 7

1.1 .NET框架 7

1.1.1 Web开发 8

1.1.2 应用程序开发 8

1.2 公共语言运行时 9

1.2.1 .NET类库 10

1.2.2 .NET编程语言 10

1.2.3 ASP.NET环境 10

1.3 C,C++和C#的发展历程 11

1.4 C#介绍 12

1.4.1 语言特性 12

1.4.2 编译C# 15

1.5 小结 17

2.2 编写Hello World!应用程序 19

第2章 编写第一个C#程序 19

2.1 选择编译器 19

2.2.1 创建类 20

2.2.2 以Main()方法开始 20

2.2.3 写到控制台 21

2.3 编译和运行程序 21

2.3.1 理解关键字和标识符 22

2.3.2 使用空白字符 23

2.4 用Main()函数开始程序 24

2.5 注释代码 25

2.5.1 使用单行注释 25

2.5.2 使用正则注释 26

2.5.3 根据注释生成XML文档 26

2.6 小结 33

3.2 指定变量的类型 35

3.1 命名变量 35

第3章 变量的使用 35

3.2.1 调整变量的大小 36

3.3 声明变量 37

3.4 使用变量的默认值 37

3.5 给变量赋值 39

3.6 使用变量数组 39

3.6.1 声明一维数组 39

3.6.2 声明多维数组 42

3.7 理解值类型和引用类型 44

3.8 转换变量类型 45

3.8.1 理解隐式转换 45

3.8.2 理解显示转换 46

3.9 使用字符串 47

3.9.1 在字符串中使用特殊字符 48

3.9.2 关闭使用字符串的特殊字符功能 48

3.10 声明枚举变量 49

3.9.3 访问字符串中的个别字符 49

3.11 小结 50

第4章 表达式 51

4.1 使用运算符 51

4.2 使用初等表达式 51

4.2.1 使用字面值 52

4.2.2 使用标识符 55

4.2.3 理解带括号的表达式 56

4.2.4 用成员访问表达式调用方法 56

4.2.5 用调用表达式调用方法 57

4.2.6 用元素访问表达式指定数组元素 57

4.2.7 用this关键字访问对象 58

4.2.8 用base关键字访问对象 59

4.2.9 使用后缀方式的增1和减1运算符 59

4.2.10 用new运算符创建新的引用类型 59

4.2.11 用typeof运算符返回类型信息 59

4.2.12 使用checked和unchecked运算符 60

4.3 理解一元表达式 61

4.3.1 用一元加法运算符返回操作数的值 62

4.3.2 用一元减法运算符返回操作数的值 62

4.3.3 用逻辑求反运算符取反布尔型表达式 62

4.3.4 理解按位求反运算符 62

4.3.5 前缀方式的增1和减1运算符 63

4.4 理解算术运算符 64

4.4.1 用赋值运算符赋新值 64

4.4.2 使用乘法运算符 64

4.4.3 使用除法运算符 65

4.4.4 使用取余运算符 66

4.4.5 使用加法运算符 66

4.4.6 使用减法运算符 67

4.5 理解移位运算符 67

4.5.1 用左移位运算符移动位 67

4.5.2 用右移位运算符移动位 68

4.5.3 用关系运算符比较表达式 69

4.5.4 用相等运算符测试相等性 69

4.5.5 用不等运算符测试不等性 69

4.5.6 用小于运算符测试值 69

4.5.7 用大于运算符测试值 70

4.5.8 用小于等于运算符测试值 70

4.5.9 用大于等于运算符测试值 70

4.6 理解整数逻辑运算符 71

4.6.1 用与运算符计算布尔值 71

4.6.2 用异或运算符计算布尔值 71

4.6.3 用或运算符计算布尔值 71

4.7 理解条件逻辑运算符 72

4.7.1 用条件与运算符比较布尔值 72

4.7.2 用条件或运算符比较布尔值 72

4.7.3 用条件逻辑运算符比较布尔值 72

4.8 理解运算的次序 73

4.9 小结 74

第5章 控制代码的流程 75

5.1 C#中的语句 75

5.1.1 使用语句声明局部变量 76

5.1.2 使用选择语句选择代码分支 77

5.1.3 使用循环语句执行嵌入语句 80

5.1.4 使用转向语句以便转向代码中的其他地方 84

5.1.5 使用语句执行安全的数学计算 86

5.2 小结 87

第6章 方法 89

6.1 理解方法结构 89

6.1.1 返回类型 89

6.1.4 方法体 90

6.2 调用方法 90

6.1.2 方法名称 90

6.1.3 参数表 90

6.3 理解参数类型 94

6.3.1 输入参数 94

6.3.2 输出参数 95

6.3.3 引用参数 96

6.3.4 参数数组 97

6.4 重载方法 99

6.5.1 覆盖方法 100

6.5 虚拟方法 100

6.6 小结 102

第7章 使用结构组合数据 103

7.1 声明结构 103

7.2 在代码中使用结构 105

7.3 在结构中定义方法 106

7.3.1 使用构造函数方法 106

7.3.2 调用结构中的方法 109

7.4 在结构中定义属性 110

7.5 在结构中定义索引器 112

7.6 在结构中定义接口 113

7.7 使用C#的基本类型作为结构 114

7.8 小结 115

第2部分 利用C#进行面向对象的编程 117

第8章 编写面向对象的代码 119

8.1 类和对象 120

8.2 面向对象软件设计的述评 121

8.2.1 提取 121

8.2.2 抽象数据类型 122

8.2.3 封装 123

8.2.4 继承 124

8.2.5 多态性 126

8.3 小结 128

9.1 声明一个类 131

第9章 C#类 131

9.2 理解Main方法 132

9.2.1 使用命令行参数 132

9.2.2 返回值 133

9.3 理解类值 134

9.3.1 使用常量 134

9.3.2 使用字段 135

9.3.3 方法的使用 136

9.3.4 属性的使用 136

9.3.5 使用事件 140

9.3.6 使用索引器 140

9.3.7 使用运算符 144

9.3.8 使用构造函数 144

9.3.9 使用析构函数 146

9.3.10 使用类的类型 148

9.4 使用关键字this作为标识符 148

9.5.1 使用静态字段 149

9.5 理解静态修饰符 149

9.5.2 使用静态常量 151

9.5.3 使用静态方法 151

9.6 小结 153

第10章 重载运算符 155

10.1 可重载一元运算符 155

10.1.1 重载一元加 156

10.1.2 重载一元减 158

10.1.3 重载按位补数 159

10.1.4 重载先递增 160

10.1.5 重载先递减 161

10.1.6 重载true和false运算符 162

10.2 可重载二元运算符 164

10.3 重载转换运算符 167

10.4 不能重载的运算符 168

10.5 小结 168

第11章 类继承 171

11.1 编译多个类 172

11.2 在C#中指定基类 172

11.3 作用域 173

11.4 重用派生类成员标识符 174

11.5 使用继承的方法 176

11.5.1 虚拟和覆盖方法 176

11.6 多态性 177

11.6.1 抽象方法 179

11.7 基类:使用继承的属性和索引器 180

11.7.1 使用关键字base 180

11.7.2 用关键字base访问基类字段 181

11.8 密封类 181

11.9 包含和委托 182

11.10 .NET的object类 188

11.11 使用装箱和取消装箱技术转换object类型 189

11.12 小结 190

第3部分 高级C# 193

第12章 名字空间 195

12.1 声明名字空间 195

12.2 在多个源文件中声明一个名字空间 197

12.3 使用名字空间中的类 197

12.4 利用using关键字辅助名字空间的使用 199

12.4.1 用using关键字命名类的别名 199

12.4.2 用using关键字声明名字空间指令 201

12.5 快速浏览.NET的名字空间 203

12.6 小结 204

第13章 接口 205

13.1 定义接口 206

13.1.1 定义接口方法 206

13.1.2 定义接口属性 207

13.1.3 定义接口索引器 207

13.2 从基接口派生接口 208

13.1.4 定义接口事件 208

13.3 使用new关键字重复使用标识符 209

13.4 在类和结构中实现接口 210

13.5 实现具有相同名称的接口方法 211

13.6 访问接口成员 212

13.6.1 查询对象是否支持某个接口 213

13.6.2 在对象上访问某个接口 215

13.7.1 支持foreach与IEnumerable和IEnumerator的结合使用 217

13.7 实现NET框架定义的接口 217

13.6.3 理解接口声明和作用域关键字 217

13.7.2 支持用IDisposable清除对象 221

13.8 小结 223

第14章 枚举 225

14.1 声明枚举 226

14.2 使用枚举 228

14.3 在枚举值上使用运算符 229

14.4.1 检索枚举名称 231

14.4 使用NET的System.Enum类 231

14.4.2 比较两个枚举值 233

14.4.3 在运行时发现基础类型 234

14.4.4 检索所有枚举值 234

14.4.5 分析字符串以便检索枚举值 235

14.5 小结 235

第15章 事件和委托 237

15.1 定义委托 237

15.2 定义事件 238

15.3 安装事件 239

15.4 激发事件 239

15.5 整个代码清单 239

15.6 标准化事件的设计 241

15.7 使用事件访问器函数 243

15.8 使用事件修饰符 244

15.8.1 static事件 244

15.9 小结 245

15.8.4 abstract事件 245

15.8.2 virtual事件 245

15.8.3 override事件 245

第16章 异常处理 247

16.1 指定异常处理 248

16.2 捕获异常 248

16.2.1 使用try关键字 249

16.2.2 捕获特定类的异常 249

16.2.3 出现异常之后进行清除 250

16.3 理解异常类 251

16.4 由NET框架定义的异常 251

16.4.1 OutOfMemoryException异常 251

16.4.2 StackOverflowException异常 252

16.4.3 NullReferenceException异常 253

16.4.6 ArrayTypeMismatchException异常 254

16.4.5 InvalidCastException异常 254

16.4.4 TypelnitializationException异常 254

16.4.7 IndexOutOfRangeExeeption异常 255

16.4.8 DivideByZeroException异常 255

16.4.9 OverflowException异常 255

16.5 使用自定义的异常 256

16.5.1 自定义异常 256

16.5.2 抛出自定义的异常 257

16.5.3 在构造函数和属性中使用异常 258

16.6 小结 260

第17章 属性 261

17.1 属性概述 261

17.2 使用.NET框架提供的属性 263

17.2.1 System.Diagnosties.ConditionalAltribute类 264

17.2.2 System.SerializableAttribute类 266

17.2.3 System.ObsoleteAttribute类 268

17.3.1 限制属性的用法 269

17.3 自定义属性类 269

17.3.2 允许多属性值 270

17.3.2 设置属性参数 271

17.3.4 举例说明属性类 272

17.4 小结 274

第18章 类的版本升级 275

18.1 版本升级问题 275

18.2 解决版本升级问题 277

18.2.1 使用new修饰符 277

18.2.2 使用override修饰符 279

18.3 小结 280

第19章 不安全代码 281

19.1 理解指针的基础知识 282

19.1.1 理解指针类型 283

19.2 编译不安全代码 283

19.2.1 在不安全模式下指定指针 284

19.2.2 通过指针访问成员的值 285

19.3 使用指针将变量的值固定到特定的地址 285

19.3.1 理解指针数组元素语法 286

19.3.2 比较指针 287

19.3.3 理解指针运算 287

19.3.4 使用sizeof运算符 288

19.4 从堆栈中分配内存 288

19.5 小结 289

第20章 高级C#构造 291

20.1 理解隐式运算符和非法类型转换 291

20.2 理解结构的初始化 293

20.2.1 初始化结构 293

20.2.2 解决有关初始化的问题 294

20.3 理解派生类 295

20.3.2 解决传递派生类时产生的问题 296

20.3.1 传递派生类 296

20.4 使用非整数作为数组元素 297

20.5 小结 299

第4部分 使用C#制定.NET解决方案 301

第21章 创建WindowsForms应用程序 303

21.1 理解WindowsForms体系结构 303

21.1.2 Application类 304

21.2 创建第一个WindowsForms应用程序 304

21.1.1 Form类 304

21.3 编译WindowsForms应用程序 305

21.4 理解程序集:为WindowsForms应用程序增加版本信息 306

21.4.1 AssemblyTitle属性 307

21.4.2 AssemblyDeseription属性 307

21.4.3 AssemblyConfiguration属性 307

21.4.4 AssemblyCompany属性 307

21.4.5 AssemblyProduct属性 307

21.4.8 AssemblyCulture属性 308

21.4.7 AssemblyTrademark属性 308

21.4.6 AssemblyCopyright属性 308

21.4.9 AssemblyVersion属性 309

21.5 对Application对象的进一步认识 310

21.5.1 理解Application事件 310

21.5.2 在程序中使用事件 310

21.5.3 使用Application属性 312

21.5.4 理解Application方法 315

21.6 为窗体增加控件 320

21.6.1 理解控件类的层次 321

21.6.2 在窗体上使用控件 322

21.7 使用资源 323

21.7.1 使用字符串资源 323

21.7.2 使用二进制资源 325

21.8 小结 326

22.1 ASP.NET Web应用程序的基本知识 327

第22章 使用WebForm创建Web应用程序 327

22.1.1 ASP.NET的新特性 328

22.1.2 WebForm中的常用控件 329

22.2 创建和配置Web应用程序 333

22.2.1 创建一个新项目 333

22.2.2 为WebForm添加控件 335

22.2.3 事件处理 338

22.3 小结 342

第23章 使用ADO.NET进行数据库编程 343

23.1 理解Dataset类和相关类 344

23.2 理解OLE DB和SQL Server支持 344

23.3 理解使用ADO.NET进行常用的数据库操作 345

23.3.1 不返回行的操作 346

23.3.2 仅返回一行的操作 350

23.3.3 仅影响一行的操作 354

23.3.4 返回多行的数据操作 361

23.3.5 影响多行的数据操作 363

23.3.6 返回数据结构的操作 365

23.4 小结 369

第24章 使用文件和Windows注册表 371

24.1 访问文件 371

24.1.1 访问二进制文件 371

24.1.2 监控文件变化 374

24.1.3 操作文件 378

24.2 访问注册表 382

24.2.1 读注册表键值 382

24.2.2 写注册表键值 383

24.2.3 枚举注册表键值 386

24.3 小结 387

第25章 访问数据流 389

25.1 理解数据I/O类的继承关系 389

25.1.1 使用流 389

25.1.2 使用writer类 389

25.2.1 理解同步I/O 391

25.1.3 使用reader类 391

25.2 操作流 391

25.2.2 理解异步I/O 395

25.3 理解writer类和reader类 400

25.3.1 使用Binary Writer将数据写到流 400

25.3.2 使用BinaryReader从流中读数据 402

25.4 使用XmlWriter流编写合格的XML 403

25.5 小结 404

第26章 使用GDI+绘图 405

26.1 使用Graphics对象 405

26.2 在GDI+中使用图像 410

26.3 使用画笔和刷子 413

26.3.1 使用Pen类 413

26.3.2 使用Brush类 415

26.4 小结 418

27.1 理解Web服务的工作原理 419

第27章 创建Web服务 419

27.2 Web服务和Visual Studio.NET 421

27.3 理解Web服务描述语言(WSDL) 423

27.4 使用SOAP 425

27.5 使用Visual Studio.NET创建Web服务 426

27.6 使用Visual Studio.NET来访问一个Web服务 429

27.7 小结 431

第28章 在ASP.NET中使用C# 433

28.1 创建Web服务 433

28.1.1 为Web服务创建一个数据库 434

28.1.2 使用ASP.NET Web服务模板 437

28.1.3 为Web服务添加数据控件 438

28.1.4 为Web服务编码 440

28.2 创建Web服务客户端 442

28.2.1 创建一个新的ASP.NET Web应用程序项目 442

28.2.3 实现Web服务的方法 443

28.2.2 添加一个Web引用 443

28.3 部署应用程序 446

28.3.1 Visual Studio.NET中的部署模式 446

28.3.2 使用部署模式来部署一个应用程序 447

28.3.3 使用拷贝模式选项来部署一个项目 448

28.4 小结 448

第29章 创建自定义控件 449

29.1 理解Windows控件库 449

29.1.1 属性 449

29.1.2 方法 451

29.1.3 字段 452

29.1.4 事件 452

29.2 通过示例学习知识 452

29.2.1 创建一个倒数计时器 452

29.2.2 创建一个倒数计时器测试工具 456

29.3.1 创建风寒指数计算类 458

29.3 使用一个类库 458

29.4 小结 461

第30章 创建移动应用程序 463

30.1 理解无线Web 463

30.1.1 介绍Mobile Internet Toolkit 463

30.1.2 理解仿真器 464

30.2 创建一个年龄计算器 464

30.3 理解移动设备的性能 468

30.4 理解移动控件的工作原理 469

30.4.1 使用Calendar控件 469

30.4.2 使用Image控件 470

30.5 在移动设备上分页 471

30.6 小结 472

第5部分 C#与.NET框架 473

31.1 程序集 475

第31章 程序集 475

31.1.1 找到已加载的程序集 476

31.1.2 程序集强名称 477

31.1.3 使用程序集类 480

31.2 生成用于程序集的本地代码 485

31.3 小结 486

32.1 Type类 487

32.1.1 检索类型信息 487

第32章 反射 487

32.1.2 查询对象 490

32.1.3 通过Reflection生成动态代码 492

32.2 小结 495

第33章 C#线程 497

33.1 线程 497

33.1.1 占先式多任务 498

33.1.2 线程优先级和锁定 498

33.1.3 对称多处理 498

33.1.4 使用资源:多多益善 499

33.1.5 应用程序域 500

33.1.6 多线程应用程序的益处 500

33.2 创建多线程应用程序 501

33.2.1 创建新线程 501

33.2.2 线程优先级 504

33.2.3 线程状态 505

33.3 轮询与监听 510

33.4 小结 511

第34章 COM 513

34.1 介绍运行时可调用包装 513

34.2 从COM组件创建.NET程序集 514

34.2.1 使用实用工具Tlbimp 515

34.2.2 直接从C#引用COM DLL 522

34.3 处理Intemp错误 523

34.4 使用平台调用 525

34.5 小结 526

第35章 COM+服务 527

35.1 名字空间System.EnterpriseServices 527

35.2 ServieedComponent类 529

35.3 利用COM+注册类 530

35.4 使用用于COM+类的属性 533

35.4.1 ApplicationAccessControl 533

35.4.2 ApplicationActivation 533

35.4.3 ApplicationID 533

35.4.4 ApplicationName 533

35.4.5 ApplicationQueuing 534

35.4.6 AutoComplete 534

35.4.7 ComponentAccessControl 534

35.4.8 ConstructionEnabled 535

35.4.9 JustInTimeActivation 535

35.4.10 LoadBalancingSupported 535

35.5.1 各种ACID属性 536

35.4.11 SecurityRole 536

35.5 处理事务 536

35.5.2 编写事务性组织 537

35.6 访问对象上下文 538

35.7 小结 540

第36章 .NET远程处理 541

36.1 介绍远程处理 541

36.2 创建远程主机程序集 543

36.3 建立远程处理服务器 544

36.3.1 指定信道和端口 545

36.3.2 指定信道格式 546

36.3.3 激活远程对象 547

36.4 编写远程处理客户端程序 553

36.5 小结 556

37.1.1 代码安全策略 558

37.1.2 代码权限 558

37.1 代码安全性 558

37.2 用户安全性 559

37.3 .NET与基于角色的安全性 560

37.3.1 分配Windows角色 561

37.3.2 principal 563

37.4 代码访问权限 563

37.4.1 创建简单的权限代码请求 564

37.4.2 拒绝权限 565

37.4.3 使用基于属性的权限 566

37.5 安全策略 567

37.5.1 安全策略的级别 567

37.5.2 代码组 567

37.5.3 已命名的权限集 568

37.5.4 改变安全策略 568

37.6 小结 569

附录A XML基础知识 571