C#3.0完全参考手册

百科

《C#3.0完全参考手册》是 清华大学出版社出版的图书,作者是希尔特 

  • 书名 C#3.0完全参考手册
  • 作者 希尔特(HerbertSchildt)
  • 译者 赵利通
  • 出版社 清华大学出版社
  • 出版时间 2010年03月01日

简介

  《C# 3.0完全参考手册》通过支持LINQ(Language Integrated Query,语言集成查询),C# 3.0为C#编程带来了彻底的变革,全球最优秀的畅销书作者Herbert Schi兴尽胡果树粒规组响兵克ldt已经更新并扩展了他的经典编程参考手册以详细介绍C# 3.0。通过使用精心编写的说明内容、权威人士的提示信息以及数百个示例,《C# 3.0完全参考手册》深入介绍了C#的所有方面,包括它的关键字、语法和核心库。另外,《C# 3.0完全参考手册》详细介绍了C# 3.0的新增功容封出标将能,如LINQ、拉姆达括假灯费讨光父日技大表达式、隐式类型的变量和匿名类型。

  这本综合性指南采用了Herbert一贯的写作风格,即条理清晰,语言精练,而且重点突出,是每个C#继推逐程序员不可或缺的参考资源。无论您是编程初学者还是老练的专业编程人员,都可以在这本权威书籍中找到关于所有C#问题的答案。

作者简介

  希尔特(Herbert Schildt),是世界顶级程序设计大师,全球顶尖编程图书作者之一。他是C、C++、Java和C#编程语言的权威,也是Wind来自ows编程方面的专家。拥有伊利诺斯大学的计算机科学硕士学位。他的编程书籍在世界范围内的销量已经超过3000000册,地构并被翻译成多种语言流传于世。

图书目录

  第Ⅰ部分 C# 语 言

  第1章 C#的起源 3

  1.1 C#的族谱 3

  1.1.1 C语言:现代程序设计的来自开端 3

  1.1.2 OOP和C++语言的创建 4

  1.1.3 Internet和Java的出现 4

  1.1.4 C#的创建 5

  1.1.5 C#吸映仅前伤音比的发展 6

  1.2 C#如360百科何与.NET Framework举随苏乐确白相关 7

  1.3 公共语言运行杨已库的工作原理 7

  1.4 托管和非托管代码 8

  第2章 C#概述 9

  2.1 面向对象程序设计 9

  2.1.1 封装 10

  2.1.2 多态性 10

  2.1.3 继承 11

  2.2 简单示例 11

  2.2.1 C#命令行编译器csc.exe 12

  2.2.2 使用Visual Studio IDE 13

  2.2.3 逐行分析第一个示例程序 17

  2型密台船举甲.3 处理语法错误 18

  2.4 改写示例一 19

  2.5 简单示异记酒圆低组夫慢例二 20

  2.6 另一种数据磁形类型 21

  2.只息下7 两种控制语句 23

胡列杨坏权乱  2.7.1 if语句 23

  2.7.2 for循环 25

  2.8 代码块 26

  2.9 分号、定位和缩进 28

  2.10 C#语言的关键字 28

  2.11 标识符 29

  2.12 .NET Fr确左本阳助前儿垂挥保amework类库 30

  第3章 数据类型、直接量和变量 31

  3.皮政茶推笔其燃大福井1 数据类型的重要性 31

  3.2 C#的数据类型 31

 况讲些项地波井面坏短短 3.3 整数类型 32

  3.4 浮点类型 34

  3.5 decimal类型 36

  3.6 字符类型 37

  3.7 布尔类型 38

  3.8 自定义输出格式 39

  3.9 直接量 42

  3.9.1 十六进制直接量 42

  3.9.2 字符转义序列 43

  3.9.3 字符串直接量 43

  3.10 变量 45

  3.10.1 初始化变量 45

  3.10.2 动态初始化变量 46

  3.10.3 隐式类型的变量 46

  3.11 变量的作用域和生命周期 48

  3.12 类型形深著草济部阳此掌心由转换 50

  3.12.1 自动类型转换 50

  3.12.2 强尽方雨略政款味协制转换不兼容的类型 51

  3.13 表达式中的类型转换 54

  第4章 运算符 59

  4.1 算术运算符 59

  4.2 关系和逻辑运算符 63

  4.3 赋值运算符 67

  4.4 按位运算符 68

  4.4.1 按位与、或、异或和取反运算符 69

  4.4.2 移位运算符 75

  4.4.3 按位复合赋值 77

  4.5 问号(?)运算符 78

  4.6 空白符和圆括号 79

  4.7 运算符优先级 79

  第5章 程序控制语句 81

  5.1 if语句 81

  5.1.1 if语句嵌套 82

  5.1.2 if-e利真lse-if阶梯结构 83

 板示队花置临游角系告源 5.2 switch语句 84

  5.3 for循环 88

  5.4 while循环 96

  5.5 do-while循环 97

  5.6 foreach循环 98

  5.7 使用break语句退出循环 98

  5.8 使用continue语句 101

  5.9 goto语句 102

  第6章 类和对象 105

  6.1 类基础 105

  6.1.1 类的基本形式 105

  6.1.2 定义类 106

  6.2 如何创建对象 110

  6.3 引用类型的变量和赋值 111

  6.4 方法 111

  6.4.1 给Building类添加方法 112

  6.4.2 从方法返回 114

  6.4.3 返回值 115

  6.4.4 使用参数 117

  6.4.5 给Building类添加带参数的方法 119

  6.4.6 避免产生不可到达的代码 121

  6.5 构造函数 121

  6.5.1 带参数的构造函数 122

  6.5.2 给Building类添加构造函数 123

  6.6 new运算符 124

  6.7 垃圾回收和析构函数 125

  6.8 this关键字 127

  第7章 数组和字符串 131

  7.1 数组 131

  7.2 多维数组 135

  7.2.1 二维数组 135

  7.2.2 三维或更多维的数组 136

  7.2.3 初始化多维数组 137

  7.3 交错数组 138

  7.4 数组引用赋值 141

  7.5 Length属性 142

  7.6 隐式类型的数组 145

  7.7 foreach循环 147

  7.8 字符串 150

  7.8.1 构造字符串 151

  7.8.2 操作字符串 151

  7.8.3 字符串数组 154

  7.8.4 字符串是不可变的 156

  7.8.5 在switch语句中使用字符串 157

  第8章 方法和类 159

  8.1 控制对类成员的访问 159

  8.1.1 C#的访问修饰符 159

  8.1.2 公有访问和私有访问的应用 161

  8.1.3 访问控制:案例分析 161

  8.2 给方法传递引用 166

  8.3 使用ref和out参数 170

  8.3.1 使用ref关键字 170

  8.3.2 使用out关键字 172

  8.3.3 对引用参数使用ref和out 174

  8.4 使用数量可变的参数 176

  8.5 返回对象 178

  8.6 方法重载 182

  8.7 构造函数重载 187

  8.8 对象初始化器 193

  8.9 Main()方法 194

  8.9.1 从Main()返回值 194

  8.9.2 给Main()传递参数 194

  8.10 递归 196

  8.11 理解static关键字 199

  8.12 静态类 204

  第9章 运算符重载 207

  9.1 运算符重载基础 207

  9.1.1 重载二元运算符 208

  9.1.2 重载一元运算符 210

  9.2 处理针对C#内置类型的运算 214

  9.3 重载关系运算符 219

  9.4 重载true和false 221

  9.5 重载逻辑运算符 223

  9.5.1 一种重载逻辑运算符的简单方法 223

  9.5.2 使用短路运算符 226

  9.6 转换运算符 230

  9.7 运算符重载的注意事项 234

  9.8 运算符重载的另一个示例 235

  第10章 索引器和属性 239

  10.1 索引器 239

  10.1.1 创建一维索引器 239

  10.1.2 索引器重载 243

  10.1.3 索引器不需要一个潜在的数组 245

  10.1.4 多维索引器 246

  10.2 属性 249

  10.2.1 自动实现属性 254

  10.2.2 对属性使用对象初始化器 254

  10.2.3 属性限制 255

  10.3 对存取器使用访问修饰符 255

  10.4 使用索引器和属性 258

  第11章 继承 265

  11.1 继承基础 265

  11.2 成员访问和继承 268

  11.3 构造函数和继承 272

  11.4 继承和名称隐藏 279

  11.5 创建多级层次结构 282

  11.6 构造函数的调用 285

  11.7 基类引用和派生对象 286

  11.8 虚方法和重写 290

  11.8.1 重写方法的原因 294

  11.8.2 应用虚方法 294

  11.9 使用抽象类 298

  11.10 使用sealed来阻止继承 302

  11.11 object类 302

  11.11.1 装箱和拆箱 304

  11.11.2 object是否是通用数据类型 306

  第12章 接口、结构和枚举 309

  12.1 接口 309

  12.2 使用接口类型的引用 314

  12.3 接口属性 317

  12.4 接口索引器 318

  12.5 接口的继承 320

  12.6 接口继承引起的名称隐藏 321

  12.7 显式实现 321

  12.8 在接口和抽象类之间选择 324

  12.9 .NET标准接口 324

  12.10 结构 325

  12.11 枚举 330

  12.11.1 初始化一个枚举 332

  12.11.2 指定枚举的基本类型 332

  12.11.3 使用枚举 332

  第13章 异常处理 335

  13.1 System.Exception类 335

  13.2 异常处理的基础 335

  13.2.1 使用try和catch 336

  13.2.2 一个简单的异常示例 336

  13.2.3 另一个异常示例 338

  13.3 未捕获异常的后果 339

  13.4 使用多个catch子句 341

  13.5 捕获所有的异常 342

  13.6 嵌套try块 344

  13.7 抛出异常 345

  13.8 finally语句 347

  13.9 进一步分析异常类 349

  13.10 派生异常类 352

  13.11 捕获派生类异常 356

  13.12 checked语句和unchecked语句 357

  第14章 I/O系统 361

  14.1 C#的I/O依赖于数据流 361

  14.1.1 字节数据流和字符数据流 361

  14.1.2 预定义数据流 361

  14.1.3 数据流类 362

  14.1.4 Stream类 362

  14.1.5 字节数据流类 363

  14.1.6 字符数据流封装类 363

  14.1.7 二进制数据流 365

  14.2 控制台I/O 365

  14.2.1 读取控制台输入 365

  14.2.2 使用ReadKey()方法 367

  14.2.3 写入控制台输出 369

  14.3 文件数据流和面向字节的文件I/O操作 370

  14.3.1 打开和关闭文件 370

  14.3.2 从FileStream中读取字节 372

  14.3.3 写入文件 373

  14.3.4 使用FileStream复制文件 374

  14.4 基于字符的文件I/O操作 376

  14.4.1 使用StreamWriter类 376

  14.4.2 StreamReader类 378

  14.5 重定向标准数据流 380

  14.6 读取和写入二进制数据 382

  14.6.1 BinaryWriter 382

  14.6.2 BinaryReader 382

  14.6.3 二进制I/O操作的程序示例 384

  14.7 随机访问文件 388

  14.8 使用MemoryStream 391

  14.9 StringReader和StringWriter 393

  14.10 把数值型字符串转换为内部表示格式 394

  第15章 委托、事件和拉姆达表达式 399

  15.1 委托 399

  15.1.1 委托的方法组转换 402

  15.1.2 使用实例方法作为委托 402

  15.1.3 多播委托 404

  15.1.4 协变和逆变 406

  15.1.5 System.Delegate 408

  15.1.6 使用委托的原因 408

  15.2 匿名函数 408

  15.3 匿名方法 408

  15.3.1 给匿名方法传递参数 409

  15.3.2 从匿名方法中返回一个值 410

  15.3.3 在匿名方法中使用外部变量 411

  15.4 拉姆达表达式 413

  15.4.1 拉姆达运算符 413

  15.4.2 表达式拉姆达 413

  15.4.3 语句拉姆达 416

  15.5 事件 418

  15.5.1 多播委托事件的示例 420

  15.5.2 作为事件处理程序的实例方法和静态方法的区别 422

  15.5.3 使用事件存取器 424

  15.5.4 事件的其他特性 429

  15.6 对事件使用匿名方法和拉姆达表达式 429

  15.7 .NET事件的规则 430

  15.8 事件的应用:案例分析 433

  第16章 名称空间、预处理器和程序集 437

  16.1 名称空间 437

  16.1.1 名称空间的声明 437

  16.1.2 名称空间可以避免名称冲突 440

  16.1.3 using命令 441

  16.1.4 using命令的另一种形式 443

  16.1.5 名称空间的合成 445

  16.1.6 嵌套名称空间 446

  16.1.7 全局名称空间 448

  16.1.8 使用名称空间别名限定符(::) 448

  16.2 预处理器 452

  16.2.1 #define 452

  16.2.2 #if和#endif 453

  16.2.3 #else和#elif 454

  16.2.4 #undef 456

  16.2.5 #error 456

  16.2.6 #warning 457

  16.2.7 #line 457

  16.2.8 #region和#endregion 457

  16.2.9 #pragma 457

  16.3 程序集和internal访问修饰符 458

  第17章 运行时类型标识、反射和特性 461

  17.1 运行时类型标识 461

  17.1.1 使用is运算符测试类型 461

  17.1.2 使用as运算符 462

  17.1.3 使用typeof运算符 464

  17.2 反射 465

  17.3 使用反射 467

  17.3.1 获取方法的相关信息 467

  17.3.2 GetMethods()的另一种形式 470

  17.3.3 使用反射调用方法 471

  17.3.4 获取Type对象的构造函数 474

  17.3.5 从程序集获得类型 478

  17.3.6 全自动类型查询 483

  17.4 特性 486

  17.4.1 特性基础 486

  17.4.2 创建特性 486

  17.4.3 连接特性 487

  17.4.4 获取对象的特性 487

  17.4.5 位置参数和命名参数 489

  17.5 三个内置特性 493

  17.5.1 AttributeUsage特性 493

  17.5.2 Conditional特性 494

  17.5.3 Obsolete特性 495

  第18章 泛型 497

  18.1 泛型概念 497

  18.2 一个简单的泛型示例 498

  18.2.1 泛型类型因类型参数的不同而不同 501

  18.2.2 泛型如何实现类型安全 501

  18.3 使用两个类型参数的泛型类 504

  18.4 泛型类的通用形式 505

  18.5 类型约束 505

  18.5.1 基类约束 506

  18.5.2 接口约束 514

  18.5.3 new()构造函数约束 518

  18.5.4 引用类型和值类型约束 519

  18.5.5 使用约束建立两个类型参数之间的关系 522

  18.5.6 使用多重约束 523

  18.6 创建类型参数的默认值 524

  18.7 泛型结构 525

  18.8 创建泛型方法 526

  18.8.1 调用泛型方法时显式地指定类型实参 529

  18.8.2 为泛型方法指定约束 529

  18.9 泛型委托 529

  18.10 泛型接口 532

  18.11 比较同一类型参数的实例 536

  18.12 泛型类的层次结构 539

  18.12.1 使用泛型基类 539

  18.12.2 泛型派生类 541

  18.13 重写泛型类中的虚方法 542

  18.14 重载带类型参数的方法 544

  18.15 泛型类型的实例化 545

  18.16 使用泛型时的一些局限 546

  18.17 小结 546

  第19章 LINQ 547

  19.1 LINQ的定义 547

  19.2 LINQ的基础知识 548

  19.2.1 简单查询 548

  19.2.2 查询可以多次执行 550

  19.2.3 查询中的数据类型的关联方式 551

  19.2.4 查询的一般形式 552

  19.3 使用where子句筛选值 552

  19.4 使用orderby子句排序结果 554

  19.5 深入讨论select子句 558

  19.6 使用嵌套的from子句 561

  19.7 使用group子句分组结果 562

  19.8 使用into子句创建继续 564

  19.9 在查询中使用let子句创建变量 566

  19.10 使用join子句连接两个序列 567

  19.11 匿名类型 570

  19.12 创建组连接 572

  19.13 查询方法 575

  19.13.1 基本查询方法 575

  19.13.2 使用查询方法创建查询 576

  19.13.3 查询语法与查询方法的对比 578

  19.13.4 更多与查询相关的扩展方法 578

  19.14 延期执行查询和立即执行查询 581

  19.15 表达式树 582

  19.16 扩展方法 583

  第20章 不安全代码、指针、空类型和其他主题 587

  20.1 不安全代码 587

  20.1.1 指针基础 588

  20.1.2 使用unsafe关键字 589

  20.1.3 使用fixed修饰符 590

  20.1.4 通过指针访问结构成员 591

  20.1.5 指针运算 591

  20.1.6 指针的比较 593

  20.1.7 指针和数组 593

  20.1.8 指针和字符串 595

  20.1.9 多重间接寻址 596

  20.1.10 指针数组 597

  20.1.11 sizeof 597

  20.1.12 stackalloc 597

  20.1.13 创建固定大小的缓冲区 598

  20.2 空类型 599

  20.2.1 空类型基础 600

  20.2.2 表达式中的空对象 601

  20.2.3 ??运算符 602

  20.2.4 在空对象上使用关系和逻辑运算符 603

  20.3 部分类型 604

  20.4 部分方法 605

  20.5 友元程序集 606

  20.6 其他关键字 607

  20.6.1 lock关键字 607

  20.6.2 readonly关键字 607

  20.6.3 const和volatile关键字 608

  20.6.4 using语句 608

  20.7 extern关键字 609

  20.7.1 声明extern方法 610

  20.7.2 声明extern程序集别名 611

  第Ⅱ部分 C#类库研究

  第21章 研究System名称空间 615

  21.1 System的成员 615

  21.2 Math类 617

  21.3 与内置值类型对应的.NET结构 622

  21.3.1 整型结构 623

  21.3.2 浮点类型结构 625

  21.3.3 Decimal结构 628

  21.3.4 Char结构 633

  21.3.5 Boolean结构 638

  21.4 Array类 639

  21.4.1 排序和搜索数组 646

  21.4.2 反转数组 649

  21.4.3 复制数组 649

  21.4.4 使用谓词 650

  21.4.5 使用Action委托 652

  21.5 BitConverter类 653

  21.6 用Random产生随机数 655

  21.7 内存管理和GC类 656

  21.8 Object类 657

  21.9 IComparable和IComparable[T]接口 657

  21.10 IEquatable[T]接口 658

  21.11 IConvertible接口 658

  21.12 ICloneable接口 658

  21.13 IFormatProvider接口和

  IFormattable接口 660

  第22章 字符串和格式化 663

  22.1 C#中的字符串 663

  22.2 String类 663

  22.2.1 字符串构造函数 664

  22.2.2 String类的字段、索引器和属性 664

  22.2.3 字符串运算符 665

  22.2.4 字符串方法 665

  22.2.5 填充和剪裁字符串 679

  22.2.6 插入、删除和替换 681

  22.2.7 改变字母大小写 682

  22.2.8 使用Substring()方法 682

  22.2.9 字符串扩展方法 683

  22.3 格式化类型 683

  22.3.1 格式化类型概述 683

  22.3.2 数值型数据的格式说明符 684

  22.3.3 理解参数编号 686

  22.4 使用String.Format()和

  ToString()格式化数据 686

  22.4.1 使用String.Format()格式化值 686

  22.4.2 使用ToString()格式化数据 689

  22.5 自定义数字格式 690

  22.6 格式化日期和时间 693

  22.7 格式化枚举 697

  第23章 多线程程序设计 701

  23.1 多线程基础 701

  23.2 Thread类 702

  23.2.1 创建和启动线程 702

  23.2.2 一些简单的改进 705

  23.2.3 创建多个线程 706

  23.3 确定线程结束的时间 708

  23.4 为线程传递参数 710

  23.5 IsBackground属性 712

  23.6 线程优先级 713

  23.7 同步 715

  23.7.1 实现同步的另一种方式 719

  23.7.2 Monitor类和锁 720

  23.8 使用Wait()、Pulse()和PulseAll()实现线程通信 721

  23.8.1 Wait()和Pulse()的示例 721

  23.8.2 死锁和竞争条件 725

  23.9 使用MethodImplAttribute属性 725

  23.10 使用互斥锁和信号量 727

  23.10.1 互斥锁 727

  23.10.2 信号量 731

  23.11 使用事件 734

  23.12 Interlocked类 736

  23.13 终止线程 737

  23.13.1 Abort()的另一种形式 739

  23.13.2 取消Abort() 740

  23.14 挂起和恢复线程 742

  23.15 判断线程的状态 742

  23.16 使用主线程 742

  23.17 多线程编程提示 744

  23.18 开启独立任务 744

  第24章 集合、枚举器和迭代器 747

  24.1 集合概述 747

  24.2 非泛型集合 748

  24.2.1 非泛型接口 748

  24.2.2 DictionaryEntry结构 752

  24.2.3 非泛型集合类 753

  24.3 使用BitArray类存储位 768

  24.4 专用集合 770

  24.5 泛型集合 771

  24.5.1 泛型接口 771

  24.5.2 KeyValuePair[TK,TV]结构 775

  24.5.3 泛型集合类 775

  24.6 在集合中存储用户自定义的类 793

  24.7 实现IComparable接口 795

  24.7.1 为非泛型集合实现IComparable接口 796

  24.7.2 为泛型集合实现IComparable[T]接口 797

  24.8 使用IComparer接口 799

  24.8.1 使用非泛型的IComparer 799

  24.8.2 使用泛型的IComparer[T] 800

  24.9 通过枚举器访问集合 802

  24.9.1 使用枚举器 802

  24.9.2 使用IDictionaryEnmerator 803

  24.10 实现IEnumerable和IEnumerator接口 805

  24.11 迭代器 806

  24.11.1 停用迭代器 808

  24.11.2 使用多个yield指令 809

  24.11.3 创建命名迭代器 810

  24.11.4 创建泛型迭代器 811

  24.12 集合初始化器 812

  第25章 通过Internet连网 813

  25.2 统一资源标识符 815

  25.3 Internet访问基础 815

  25.3.1 WebRequest类 816

  25.3.2 WebResponse类 818

  25.3.3 HttpWebRequest类和HttpWebResponse类 819

  25.3.4 第一个简单的示例 819

  25.4 处理网络错误 821

  25.4.1 Create()产生的异常 822

  25.4.2 GetResponse()产生的异常 822

  25.4.3 GetResponseStream()产生的异常 822

  25.4.4 使用异常处理 822

  25.5 Uri类 824

  25.6 访问附加的HTTP响应信息 825

  25.6.1 访问报头 826

  25.6.2 访问Cookie 827

  25.6.3 使用LastModified属性 829

  25.7 MiniCrawler:案例分析 829

  25.8 使用WebClient 833

  第26章 使用System.Windows.Forms创建基于窗体的Windows应用程序 837

  26.1 Windows程序设计简史 837

  26.2 编写基于窗体的Windows应用程序的两种方式 838

  26.3 Windows与用户交互操作的方法 838

  26.4 Windows窗体 839

  26.5 基于窗体的Windows框架程序 839

  26.6 添加按钮 841

  26.6.1 按钮概述 842

  26.6.2 给窗体添加按钮 842

  26.6.3 简单的按钮示例 842

  26.7 消息处理 843

  26.8 使用消息框 845

  26.9 添加菜单 848

  26.9.1 创建传统样式的主菜单 848

  26.9.2 使用MenuStrip创建新式菜单 852

  附录A 文档注释快速参考 857

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com