C# 3.0完全参考手册
C# 3.0完全参考手册封面图

C# 3.0完全参考手册

(美) 希尔特 (Schildt,H.) , 著

出版社:清华大学出版社

年代:2010

定价:98.0

书籍简介:

本书包含了最全面的C#资源,主要介绍了它的关键字、语法和核心库。另外,还详细介绍了C#3.0中新增的一些功能。

作者介绍:

希尔特(Herbert Schildt),是世界顶级程序设计大师,全球顶尖编程图书作者之一。他是C、C++、Java和C#编程语言的权威,也是Windows编程方面的专家。拥有伊利诺斯大学的计算机科学硕士学位。他的编程书籍在世界范围内的销量已经超过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#如何与.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 Framework类库 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-else-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.1 System.Net的成员 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

内容摘要:

通过支持LINQ(Language Integrated Query,语言集成查询),C# 3.0为C#编程带来了彻底的变革,全球最优秀的畅销书作者Herbert Schildt已经更新并扩展了他的经典编程参考手册以详细介绍C# 3.0。通过使用精心编写的说明内容、权威人士的提示信息以及数百个示例,《C# 3.0完全参考手册》深入介绍了C#的所有方面,包括它的关键字、语法和核心库。另外,本书详细介绍了C# 3.0的新增功能,如LINQ、拉姆达表达式、隐式类型的变量和匿名类型。《C# 3.0完全参考手册》这本综合性指南采用了Herbert一贯的写作风格,即条理清晰,语言精练,而且重点突出,是每个C#程序员不可或缺的参考资源。无论您是编程初学者还是老练的专业编程人员,都可以在这本权威书籍中找到关于所有C#问题的答案。

编辑推荐:

《C#3.0完全参考手册》
Herbert Schildt是最优秀的编程畅销书作者,其创作的编程书籍在全球的销量已逾350万册。
Schildt的经典编程著作——针对C#3.0进行了全面修订和更新
全面透彻地介绍C#语言
涵盖C#3.0 的新功能,包括LINQ、拉姆达表达式和匿名类型
包括数百个浅显明了的示例
主要内容包括:
数据类型和运算符、控制语句、类和对象、构造函数、析构函数和方法、接口、数组、枚举和结构、方法和运算符重载、继承和虚方法、反射和运行时类型ID、异常处理、委托、属性、事件和索引器

特性:
多线程处理、泛型、LINQ、拉姆达表达式、匿名类型、扩展方法、隐式类型的变量、I/O、网络连接和集合、预处理程序和其他更多内容。

书籍规格:

书籍详细信息
书名C# 3.0完全参考手册站内查询相似图书
9787302220725
如需购买下载《C# 3.0完全参考手册》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)98.0语种简体中文
尺寸26 × 19装帧平装
页数印数

书籍信息归属:

C# 3.0完全参考手册是清华大学出版社于2010.3出版的中图分类号为 TP312-62 的主题关于 C语言-程序设计-技术手册 的书籍。