《新手学C# 3.0 第3版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Herbert Schildt著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302214335
  • 页数:586 页
图书介绍:C#是.NET Framework最重要的编程语言,本书通过介绍C#的基础知识以及C# 3.0的新增功能来教会读者快速地入门C#的编程方法和技巧。

第1章 C#基础 1

1.1 C#家族树 2

1.1.1 C语言:现代编程的开端 2

1.1.2 OOP与C++的产生 2

1.1.3 Internet与Java的出现 3

1.1.4 C#的产生 4

1.2 C#的发展 5

1.3 C#与.NET Framework的关系 6

1.3.1 .NET Framework的定义 6

1.3.2 公共语言运行库的工作方式 6

1.3.3 托管与非托管代码 7

1.3.4 公共语言规范 7

1.4 面向对象编程 8

1.4.1 封装 8

1.4.2 多态性 9

1.4.3 继承 9

1.5 创建、编译和运行第一个C#程序 10

1.5.1 获得C#3.0编译器 11

1.5.2 使用Visual Studio IDE 11

1.5.3 使用C#命令行编译器csc.exe 15

1.6 逐行分析第一个样本程序 16

1.7 处理语法错误 18

1.8 程序变体 19

1.9 使用变量 19

1.10 double数据类型 22

1.11 两种控制语句 25

1.11.1 if语句 25

1.11.2 for循环 27

1.12 使用代码块 29

1.13 分号和定位 30

1.14 C#关键字 32

1.15 标识符 33

1.16 C#类库 34

第2章 数据类型与运算符简介 37

2.1 数据类型重要的原因 38

2.2 C#的值类型 38

2.3 浮点类型 41

2.4 decimal类型 42

2.5 字符 43

2.6 bool类型 44

2.7 一些输出选项 45

2.8 字面值 48

2.8.1 十六进制字面值 49

2.8.2 字符转义序列 49

2.8.3 字符串字面值 50

2.9 详细介绍变量 52

2.9.1 初始化变量 52

2.9.2 动态初始化 53

2.9.3 隐式类型变量 53

2.10 变量的作用域和生命周期 55

2.11 运算符 58

2.12 算术运算符 58

2.13 关系与逻辑运算符 61

2.14 赋值运算符 66

2.14.1 复合赋值 66

2.14.2 赋值中的类型转换 67

2.15 强制转换不兼容的类型 68

2.16 运算符优先级 70

2.17 表达式中的类型转换 70

第3章 程序控制语句 77

3.1 从键盘输入字符 78

3.2 if语句 79

3.2.1 嵌套if 80

3.2.2 if-else-if梯次 81

3.3 switch语句 82

3.4 for循环 89

3.4.1 for循环的一些变体 91

3.4.2 在for循环内声明循环控制变量 94

3.5 while循环 95

3.6 do-while循环 96

3.7 使用break退出循环 101

3.8 使用continue 103

3.9 goto 104

3.10 嵌套循环 109

第4章 类、对象及方法 113

4.1 类的基础知识 114

4.1.1 类的一般形式 114

4.1.2 定义类 115

4.2 创建对象的方式 119

4.3 引用变量与赋值 120

4.4 方法 120

4.4.1 向Vehicle类中添加方法 121

4.4.2 从方法返回 123

4.4.3 返回值 124

4.4.4 使用形参 126

4.4.5 向Vehicle中添加一个参数化方法 128

4.5 构造函数 135

4.5.1 参数化构造函数 136

4.5.2 向Vehicle类中添加一个构造函数 137

4.6 再次介绍new运算符 139

4.7 垃圾收集与析构函数 139

4.8 this关键字 140

第5章 更多数据类型与运算符 145

5.1 数组 146

5.2 多维数组 152

5.2.1 二维数组 152

5.2.2 三维或多维数组 153

5.2.3 初始化多维数组 153

5.3 交错数组 154

5.4 数组引用赋值 156

5.5 使用数组的Length属性 157

5.6 创建隐式类型数组 160

5.7 foreach循环 164

5.8 字符串 167

5.8.1 构造string 167

5.8.2 对字符串进行操作 168

5.8.3 字符串的数组 170

5.8.4 字符串是不可变的 171

5.9 按位运算符 172

5.9.1 按位AND、OR、XOR和NOT运算符 173

5.9.2 移位运算符 177

5.9.3 按位复合赋值 179

5.10 “?”运算符 182

第6章 详细介绍方法与类 187

6.1 控制对类成员的访问权限 188

6.2 向方法传递对象引用 194

6.3 使用ref和out形参 197

6.3.1 使用ref 198

6.3.2 使用out 199

6.4 使用可变数量的实参 202

6.5 返回对象 204

6.6 方法重载 206

6.7 重载构造函数 212

6.8 Main()方法 218

6.8.1 从Main()中返回值 218

6.8.2 向Main()传递实参 219

6.9 递归 221

6.10 理解static 222

6.11 static构造函数和类 225

第7章 运算符重载、索引器及属性 231

7.1 运算符重载 232

7.1.1 operator方法的一般形式 232

7.1.2 重载二元运算符 233

7.1.3 重载一元运算符 235

7.1.4 增加灵活性 239

7.1.5 重载关系运算符 244

7.1.6 关于运算符重载的提示与限制 246

7.2 索引器 247

7.2.1 多维索引器 252

7.2.2 索引器限制 254

7.3 属性 254

7.3.1 自动实现属性 258

7.3.2 属性限制 259

7.4 使用带存取器的访问修饰符 259

第8章 继承 271

8.1 继承基础知识 272

8.2 成员访问和继承 275

8.3 使用受保护访问 278

8.4 构造函数与继承 279

8.5 继承与名称隐藏 285

8.6 使用base访问隐藏名称 286

8.7 创建多层层次结构 291

8.8 何时调用构造函数 294

8.9 基类引用和派生对象 295

8.10 虚方法与重写 298

8.10.1 重写方法的原因 301

8.10.2 应用虚方法 301

8.11 使用抽象类 304

8.12 使用sealed关键字防止继承 308

8.13 obiect类 309

第9章 接口、结构与枚举 315

9.1 接口 316

9.2 使用接口引用 320

9.3 接口属性 328

9.4 接口索引器 330

9.5 接口可以继承 332

9.6 显式实现 333

9.7 结构 336

9.8 枚举 338

9.8.1 初始化枚举 340

9.8.2 指定枚举的底层类型 340

第10章 异常处理 343

10.1 System.Exception类 344

10.2 异常处理基础知识 344

10.2.1 使用try和catch 344

10.2.2 一个简单的异常示例 345

10.2.3 第二个异常示例 346

10.3 未捕获异常的后果 347

10.4 异常有助于适当地处理错误 349

10.5 使用多个catch子句 350

10.6 捕获所有异常 351

10.7 try块可以嵌套 352

10.8 抛出异常 353

10.9 使用finally 355

10.10 详述异常 357

10.11 派生异常类 359

10.12 捕获派生类异常 361

10.13 使用checked和unchecked 366

第11章 使用I/O 371

11.1 构建在流基础上的C#I/O 372

11.1.1 字节流与字符流 372

11.1.2 预先定义的流 372

11.2 各种流类 372

11.2.1 Stream类 373

11.2.2 字节流类 374

11.2.3 字符流包装器类 374

11.2.4 二进制流 376

11.3 控制台I/O 376

11.3.1 读取控制台输入 376

11.3.2 编写控制台输出 378

11.4 FileStream和面向字节的文件I/O 379

11.4.1 打开和关闭文件 380

11.4.2 从FileStream中读取字节 382

11.4.3 写人文件 383

11.5 基于字符的文件I/O 385

11.5.1 使用StreamWriter 386

11.5.2 使用StreamReader 388

11.6 重定向标准流 389

11.7 读、写二进制数据 393

11.7.1 BinaryWriter 393

11.7.2 BinaryReader 394

11.7.3 说明二进制I/O 395

11.8 随机访问文件 397

11.9 将数值字符串转换成它们的内部表示 399

第12章 委托、事件与名称空间 411

12.1 委托 412

12.1.1 使用实例方法作为委托 415

12.1.2 多播 416

12.1.3 为什么使用委托 418

12.2 匿名方法 419

12.3 事件 422

12.3.1 多播事件示例 424

12.3.2 通过事件使用匿名方法 426

12.4 名称空间 428

12.4.1 声明名称空间 428

12.4.2 using 431

12.4.3 using的第二种形式 432

12.4.4 名称空间可以累加 433

12.4.5 名称空间可以嵌套 434

12.4.6 全局名称空间 436

第13章 泛型 441

13.1 泛型的概念 442

13.2 泛型的基本原理 442

13.2.1 基于类型实参的不同泛型类型 445

13.2.2 泛型提高类型安全性 445

13.3 包含两个类型形参的泛型类 448

13.4 约束类型 450

13.4.1 使用基类约束 451

13.4.2 使用约束在两个类型形参之间建立关系 453

13.4.3 使用接口约束 454

13.4.4 使用new()构造函数约束 456

13.4.5 引用类型约束和值类型约束 458

13.4.6 使用多种约束 460

13.5 创建类型形参的默认值 461

13.6 泛型结构 463

13.7 泛型方法 464

13.7.1 使用显式类型实参调用泛型方法 467

13.7.2 在泛型方法中使用约束 467

13.8 泛型委托 468

13.9 泛型接口 470

第14章 LINQ简介 481

14.1 LINQ的定义 482

14.2 LINQ的基本原理 483

14.2.1 简单查询 483

14.2.2 查询可以多次执行 485

14.2.3 查询中的数据类型如何关联 486

14.2.4 查询的一般形式 487

14.3 使用where过滤值 488

14.4 使用orderby给结果排序 490

14.5 仔细分析select 491

14.6 使用group分组结果 494

14.7 使用into创建继续 496

14.8 使用let在查询中创建变量 498

14.9 使用join连接两个序列 499

14.10 匿名类型和对象初始化器 502

14.11 创建分组连接 505

14.12 查询方法和拉姆达表达式 508

14.12.1 基本查询方法 508

14.12.2 拉姆达表达式 509

14.12.3 使用查询方法创建查询 510

14.12.4 更多与查询相关的扩展方法 512

14.i2.5 延迟查询执行和即时查询执行 515

14.13 进一步研究扩展方法 516

14.14 进一步研究拉姆达表达式 518

14.14.1 表达式拉姆达 518

14.14.2 语句拉姆达 520

第15章 预处理程序、RTTI、可空类型和其他高级主题 525

15.1 预处理程序 526

15.1.1 #define 526

15.1.2 #if和#endif 526

15.1.3 #else和#elif 528

15.1.4 #undef 530

15.1.5 #error 531

15.1.6 #warning 531

15.1.7 #line 531

15.1.8 #region和#endregion 531

15.1.9 #pragma 532

15.2 运行时类型标识 532

15.2.1 使用is测试类型 532

15.2.2 使用as 533

15.2.3 使用typeof 534

15.3 可空类型 534

15.3.1 “??”运算符 536

15.3.2 可空对象与关系和逻辑运算符 537

15.4 不安全代码 538

15.4.1 指针简介 538

15.4.2 不安全的关键字 540

15.4.3 使用fixed 541

15.5 属性 542

15.5.1 Conditional属性 543

15.5.2 Obsolete属性 544

15.6 转换运算符 545

15.7 集合简介 548

15.7.1 集合的基础知识 549

15.7.2 集合示例研究:创建一个动态数组 550

15.8 其他关键字 555

15.8.1 internal访问修饰符 555

15.8.2 sizeof 556

15.8.3 lock 556

15.8.4 readonly 556

15.8.5 stackalloc 557

15.8.6 using语句 557

15.8.7 const和volatile 558

15.8.8 partial修饰符 558

15.8.9 yield 561

15.8.10 extern 561

15.9 展望 561

附录A 自测题答案 563