《C#基础教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)ChristianGross著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115222824
  • 页数:391 页
图书介绍:本书是C#语言入门图书,共分17章,除讲解了C#的语言基础、异常处理、面向对象及面向组件的基础知识外,还介绍了lambda表达式、持久化存储、.NET泛型、应用程序配置和动态加载、多线程、关系型数据库、LINQ、函数式代码及C#的其他相关问题。

第1章 预备,坐稳,出发! 1

1.1 下载和安装工具 1

1.2 选择应用程序类型 3

1.3 创建项目和解决方案 3

1.4 创建Windows应用程序 4

1.4.1 查看源代码 5

1.4.2 重新命名解决方案 5

1.4.3 保存解决方案 6

1.4.4 运行Windows应用程序 6

1.4.5 让Windows应用程序向你打个“招呼” 7

1.4.6 给应用程序添加注释 10

1.5 在解决方案的用户控件之间导航 11

1.6 创建控制台应用程序 13

1.6.1 给解决方案添加控制台应用程序项目 14

1.6.2 让控制台应用程序向你打个“招呼” 14

1.6.3 设置启动项目 14

1.6.4 运行控制台项目 15

1.7 创建类库 15

1.7.1 给解决方案添加类库项目 15

1.7.2 转移功能 15

1.7.3 定义引用 16

1.7.4 调用类库的功能 16

1.7.5 使用变量和常量 18

1.8 .NET Framework的工作原理 20

1.9 需牢记的要点 22

1.10 练习 22

第2章 .NET数字类型和值类型 24

2.1 软件开发的要点与构思 24

2.1.1 计算器的构思 25

2.1.2 确定计算器开发的工作要点 26

2.2 实现类库 28

2.2.1 编写Add()方法 30

2.2.2 编写代码来测试Add()方法 32

2.2.3 数值和数字类型方面的问题 36

2.3 数字类型和值类型 38

2.3.1 值类型和引用类型 38

2.3.2 CLR数字类型 39

2.4 完成计算器的开发 42

2.5 需牢记的要点 43

2.6 练习 43

第3章 字符串操作 45

3.1 翻译应用程序的构思 45

3.2 构建Translator应用程序 46

3.2.1 创建Translator类 46

3.2.2 问候语的翻译 47

3.2.3 创建测试应用程序 47

3.2.4 职责方面的问题解答 48

3.2.5 研究String类型 49

3.2.6 解决多余空格的问题 53

3.2.7 字符串的引用 57

3.2.8 字符映射 58

3.3 对语言和文化的处理 59

3.3.1 在Windows下设置文化和语言 59

3.3.2 数字的解析与处理 60

3.3.3 文化的处理 62

3.4 需牢记的要点 64

3.5 练习 64

第4章 数据结构、决策和循环 65

4.1 深度优先搜索算法 65

4.2 实现用户定义的类型 68

4.2.1 声明结构和类 68

4.2.2 值类型的限制 69

4.3 搜索算法的构思 74

4.4 编写深度优先搜索代码 75

4.4.1 数据结构的定义和实现 75

4.4.2 定义算法测试 84

4.4.3 实现深度优先搜索算法 88

4.4.4 运行深度优先搜索算法 94

4.5 需牢记的要点 95

4.6 练习 96

第5章 C#异常处理 97

5.1 错误、异常和异常处理 97

5.2 运行调试器 98

5.3 处理异常 99

5.3.1 捕捉异常 99

5.3.2 实现异常处理器 101

5.3.3 栈展开的防护工作 104

5.3.4 过滤异常 105

5.4 编写异常安全代码 107

5.4.1 编写防范性代码 107

5.4.2 使用默认的状态 109

5.4.3 处理警示性错误 110

5.5 需牢记的要点 111

5.6 练习 111

第6章 面向对象编程的基础知识 112

6.1 货币差价 112

6.2 构思货币兑换应用程序 113

6.3 为货币兑换应用程序编写测试 113

6.3.1 从结构性代码起步 114

6.3.2 基类 114

6.3.3 继承 115

6.3.4 使用C#属性 116

6.3.5 继承和作用域修饰符 119

6.3.6 处理验证 122

6.3.7 完成基类 124

6.4 编写活跃交易和酒店交易的货币换算 125

6.4.1 实现ActiveCurrencyTrader 125

6.4.2 实现HotelCurrencyTrader 127

6.5 预处理器指令、属性和抽象方法的更多知识 129

6.5.1 预处理器指令的更多细节 129

6.5.2 属性作用域的更多细节 131

6.5.3 abstract关键字的更多细节 131

6.6 需牢记的要点 133

6.7 练习 133

第7章 组件和对象层级 134

7.1 基本的税收概念 134

7.2 税收应用程序的构思 135

7.3 用构想编程 135

7.3.1 使用C#接口描述构想 136

7.3.2 理解继承和组件的工作原理 138

7.4 实现税收计算引擎 143

7.4.1 定义接口 143

7.4.2 实现税收计算引擎的基类 144

7.4.3 使用默认的实现 148

7.4.4 实现基本的税收计算 150

7.5 使用税收计算引擎的基本功能 151

7.5.1 实现税收计算引擎并计算税收 151

7.5.2 使用税收计算引擎 155

7.6 继承和类型强制转换的更多知识 156

7.6.1 继承的更多细节 156

7.6.2 类型强制转换的更多细节 161

7.7 需牢记的要点 161

7.8 练习 162

第8章 面向组件的架构 163

8.1 内核 163

8.2 构思照明应用程序 164

8.3 构建内核 165

8.3.1 定义接口 165

8.3.2 实现内核 168

8.3.3 将内核定义为接口而不是类 182

8.4 构建完整的应用程序 183

8.4.1 定义一些房间 183

8.4.2 实例化PublicRoom和PrivateRoom 184

8.5 进一步学习私有类和对象初始化 185

8.5.1 私有类 185

8.5.2 使用内嵌数据类型的对象初始化 186

8.6 需牢记的要点 187

8.7 练习 187

第9章 列表、委托和lambda表达式 189

9.1 集合的管理 189

9.1.1 C# 2.0之前的集合管理 189

9.1.2 C# 2.0之后的集合管理 193

9.2 问题代码案例 194

9.2.1 使用委托 197

9.2.2 使用匿名方法 201

9.2.3 使用委托进行多路广播 202

9.2.4 使用lambda表达式 203

9.3 lambda表达式 205

9.3.1 创建算法 205

9.3.2 使用lambda表达式实现算法 206

9.4 集合类型的更多知识 207

9.4.1 使用一般列表 207

9.4.2 使用键/值对列表 208

9.4.3 使用Stack 209

9.4.4 使用Queue 209

9.5 需牢记的要点 210

9.6 练习 210

第10章 关于持久化存储的所有相关问题 211

10.1 构思彩票预测系统 211

10.2 使用控制台灌入数据 212

10.2.1 从控制台读取数据 212

10.2.2 构建外壳 213

10.2.3 实现TextProcessor应用程序 222

10.3 灌入二进制数据 229

10.3.1 定义接口并实现外壳 230

10.3.2 定义类型 233

10.3.3 把文本流转换成二进制流 234

10.3.4 把二进制流转换成文本流 235

10.4 调整序列化 237

10.4.1 执行自定义序列化 237

10.4.2 将数据成员声明为不可序列化 238

10.4.3 分离数据对象和动作对象 238

10.5 完成自定义类型 238

10.5.1 实现GetHashCode() 239

10.5.2 实现Equals() 241

10.6 需牢记的要点 243

10.7 练习 243

第11章 .NET泛型研究 244

11.1 为何要使用.NET泛型 244

11.2 服务器端电子数据表的原理 247

11.3 服务器端电子数据表的架构 249

11.3.1 设计架构 249

11.3.2 定义服务器电子数据表接口 250

11.4 实现服务器电子数据表 257

11.4.1 在电子数据表中使用lambda表达式 263

11.4.2 在不知道类型的情况下分配状态 266

11.4.3 重写ToString()功能 268

11.4.4 使用枚举器迭代数据 268

11.5 使用电子数据表 269

11.5.1 计算平均值 269

11.5.2 计算的工作原理 271

11.6 需牢记的要点 272

11.7 练习 272

第12章 应用程序配置和动态加载 273

12.1 惯例优于配置 273

12.1.1 使用配置架构解耦合 274

12.1.2 使用惯例架构解耦合 275

12.2 设置动态加载项目 275

12.2.1 给程序集签名 276

12.2.2 设置输出路径 277

12.3 定义和处理配置文件 278

12.3.1 创建基于XML的配置文件 279

12.3.2 添加动态加载的配置项 280

12.3.3 读取配置文件 281

12.4 程序集的动态加载 281

12.4.1 类型的动态实例化 281

12.4.2 增强配置文件 285

12.5 加载强命名的程序集 289

12.5.1 将强命名的程序集重定位到GAC 290

12.5.2 使用版本号 292

12.6 实现基于惯例的架构 294

12.7 动态加载基类或接口类型 296

12.8 需牢记的要点 296

12.9 练习 297

第13章 关于多线程 298

13.1 多任务处理 298

13.1.1 抢占式多任务处理 299

13.1.2 时间分割 299

13.2 使用线程 301

13.2.1 创建新的线程 301

13.2.2 等待线程结束 302

13.2.3 创建带状态的线程 303

13.2.4 线程之间的同步 304

13.2.5 如何防止代码死锁 309

13.3 实现读/写线程架构 312

13.4 实现生产者/消费者架构 315

13.4.1 使用隐藏的生产者/消费者实现 316

13.4.2 实现通用的生产者/消费者架构 317

13.4.3 使用异步法 319

13.5 需牢记的要点 320

13.6 练习 321

第14章 使用关系型数据库 322

14.1 关系型数据库 322

14.1.1 关系型数据库表 322

14.1.2 数据库关系 323

14.2 访问关系型数据库 326

14.3 使用Visual C# Express设计数据库 327

14.3.1 配置数据源 328

14.3.2 添加表 330

14.4 使用ADO.NET访问数据库 333

14.4.1 连接数据库 333

14.4.2 添加表数据 334

14.4.3 从表中选择数据 336

14.4.4 从数据库删除数据 336

14.4.5 关闭数据库连接 337

14.4.6 ADO.NET用法提要 337

14.5 使用Dataset Designer 337

14.5.1 构建表之间的关系 337

14.5.2 使用生成的代码 341

14.6 需牢记的要点 342

14.7 练习 343

第15章 学习LINQ 344

15.1 找到中奖号码的频率 344

15.1.1 扩展彩票预测系统 345

15.1.2 实现数字频率解决方案 348

15.2 学习更多的LINQ技巧 353

15.2.1 选择和更改数据 356

15.2.2 用匿名类型进行选择 357

15.2.3 处理多个流 358

15.2.4 给结果排序 358

15.2.5 给结果分组 359

15.2.6 执行集合运算 360

15.3 在其他环境中使用LINQ 363

15.4 需牢记的要点 364

15.5 练习 364

第16章 在C#中编写函数式代码 365

16.1 为何要使用函数式编程 365

16.2 函数式编程的要领 367

16.2.1 高阶函数 367

16.2.2 纯函数 370

16.2.3 函数求值 374

16.2.4 递归 376

16.3 需牢记的要点 377

16.4 练习 377

第17章 C#拾遗补缺 378

17.1 操作符 378

17.1.1 使用算术操作符 378

17.1.2 重载操作符 382

17.2 goto语句 384

17.3 .NET泛型约束 385

17.3.1 使用type约束 385

17.3.2 使用new约束 386

17.3.3 使用class约束 387

17.4 可空类型 387

17.5 分部类和分部方法 389

17.6 需牢记的要点 390

17.7 练习 391