图书介绍

HeadFirstC# 中文版PDF|Epub|txt|kindle电子书版本下载

HeadFirstC# 中文版
  • 安德鲁·斯泰尔曼等编著 著
  • 出版社: 北京:中国电力出版社
  • ISBN:9787508387994
  • 出版时间:2009
  • 标注页数:738页
  • 文件大小:179MB
  • 文件页数:776页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

HeadFirstC# 中文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 C#助你快速开发 10分钟(甚至更短时间)内轻松搞定可视化应用2

为什么你要学C2

C#和Visual Studio IDE使很多问题变得容易3

帮CEO实现无纸化4

开始构建程序之前,先要了解用户的需求5

以下是你要实现的目标6

你在Visual Studio中这样做……8

Visual Studio会为你这样做……8

开发用户界面12

Visual Studio,在幕后14

补充自动生成的代码15

已经可以运行你的应用程序了16

我们需要一个数据库来存储信息18

为Contact List应用创建数据库表20

联系卡片上的空白就是People表中的列22

完成表的构建25

建立数据图表,以便应用访问26

将卡片数据插入到数据库中28

利用一个数据源连接窗体与数据库对象30

为窗体增加数据库驱动控件32

好程序使用起来应当简单明了34

如何把你的应用变成所有人的应用37

为用户提供应用38

革命尚未成功:测试安装39

你已经构建了一个完整的数据驱动应用程序40

2 都只是代码 幕后的故事44

当你这么做时……44

……IDE会这么做45

程序从何而来46

IDE帮你编写代码48

当在IDE中做修改时,同时也在修改你的代码50

程序剖析52

程序知道从哪里开始54

可以改变程序的入口点56

两个类可以在同一个命名空间中61

程序使用变量处理数据62

C#使用了我们熟悉的数学符号64

循环就是周而复始反复完成一个动作65

开始编写代码66

if/else语句做决策67

建立条件,并查看条件是否为true68

3对象:我们的方向! 让代码更合理86

Mike如何考虑他的问题86

Mike的汽车导航系统如何考虑他的问题87

Mike的Navigator类有一些设置和修改路线的方法88

使用前面所学构建一个简单的应用程序89

Mike有一个好主意90

Mike可以使用对象来解决他的问题91

使用类来建立对象92

由一个类创建一个新对象时,称为该类的一个实例93

更好的解决方案……源于对象!94

实例使用字段来记录状态98

创建一些实例!99

感谢内存100

程序要做什么101

使用合适的类名和方法名使代码更直观102

为类提供一个自然的结构104

类图可以帮助你组织类,让它们更有意义106

构建一个类来处理人110

为他们创建一个项目111

建立一个窗体与他们交互112

初始化对象还有更容易的方法115

关于设计直观类的一些想法116

4类型与引用 现在是上午10:00,你知道你的数据在哪儿吗?124

变量的类型决定了它能存储哪种数据124

变量就像数据外卖杯126

10磅数据装进5磅的包里127

即使数字的大小合适,也不能随意赋给任意变量128

对一个过大的值完成强制类型转换时,C#会自动对其进行调整129

C#自动完成一些强制类型转换130

调用一个方法时,变量必须与参数的类型匹配131

结合=和操作符136

对象也是变量137

用引用变量指示对象138

引用就像对象的标签139

如果没有任何引用了,对象会被垃圾回收140

多个引用及其副作用142

两个引用意味着有两个途径来改变一个对象的数据147

一种特殊情况:数组148

数组还可以包含一组引用变量149

欢迎品尝马虎Joe餐厅物美价廉的三明治!150

对象使用引用彼此交谈152

还没有对象153

C#实验室1 赛狗日164

规范:构建一个赛狗模拟系统164

最终完成的作品172

5封装 让你的隐私……属于你个人174

Kathleen是一个策划人174

预算工具要做些什么?175

Kathleen的测试驱动180

每个选择都应当单独计算182

很容易无意识地滥用对象184

封装意味着保证类中的一些数据是私有的185

使用封装来控制对类的方法和字段的访问186

但是realName字段真的得到了保护吗?187

私有字段和方法只能从类的内部访问188

实现类封装的几个主意191

封装保证数据干净192

属性使封装更容易193

构建一个应用来测试Farmer类194

使用自动属性完成这个类195

如果想改变单位饲料数呢?196

使用构造函数初始化私有字段197

6继承 对象的家庭树206

Kathleen也承办生日聚会206

需要一个BirthdayParty类207

还有一个问题……如果人数超过12,聚会能另外收取$100吗?213

类使用继承时,只需写一次代码214

建立类模型:从一般到特定215

怎样设计一个动物园模拟系统?216

使用继承来避免子类中出现重复代码217

不同的动物会发出不同的声音218

想想如何对动物分组219

创建类层次体系220

每个子类都扩展其基类221

使用冒号继承基类222

我们知道继承会为子类增加基类的字段、属性和方法……225

子类可以覆盖方法来改变或替换它继承的方法226

只要能使用基类,就可以使用它的某个子类227

子类可以使用base关键字访问其基类232

如果基类有构造函数,子类也需要有构造函数233

现在准备完成Kathleen交给的任务!234

构建一个蜂巢管理系统239

首先构建基本系统240

使用继承扩展蜜蜂管理系统245

7接口与抽象类 让类信守承诺252

再来看蜂巢问题252

可以使用继承为不同类型的蜜蜂创建相应的类253

接口告诉类必须实现某些方法和属性254

使用interface关键字定义接口255

现在可以创建两项工作都胜任的NectarStinger实例256

实现接口的类必须包括接口的所有方法257

使用接口做个小练习258

不能实例化接口,不过可以引用接口260

接口引用类似于对象引用261

可以使用“is”查看一个类是否实现了某个接口262

接口可以继承其他接口263

RoboBee 4000可以完成工蜂的工作,而且不需要消耗珍贵的蜂蜜264

is指出一个对象实现了什么,as则告诉编译器如何看待一个对象265

CoffeeMaker也是一个Appliance266

对象和接口的向上强制转换267

向下强制转换允许你把家用电器变回咖啡机268

接口也可以向上和向下强制转换269

不只是公共和私有273

访问修饰符改变作用域274

有些类始终不应实例化277

抽象类就像类和接口之间的一个过渡278

有些类不应实例化280

抽象方法没有方法体281

多态表示一个对象可以有多种不同形态289

8枚举与集合 存储大量数据310

字符串并非始终适用于存储各类数据310

Enum允许枚举一组合法值311

通过枚举,可以用名来表示数字312

可以使用数组来创建一副牌……315

数组很难处理316

利用List可以很容易地存储……任何事物的集合317

List比数组更灵活318

List会动态伸缩321

List对象可以存储任何类型322

集合初始化方法类似于对象初始化方法326

下面来创建一个Duck列表327

列表很容易,但排序可能很难328

两种鸭子排序法329

使用IComparer告诉List如何排序330

创建比较对象的一个实例331

IComparer可以完成复杂的比较332

使用字典存储键和值335

字典功能大纲336

键和值也可以是不同的类型337

可以建立你自己的重载方法343

还有更多集合类型……355

队列是FIFO——先进先出356

栈是LIFO——后进先出357

C#实验室2 冒险游戏364

规则:构建一个冒险游戏364

好戏开始了!484

9读写文件 保存了字节数组,就留住了一切386

C#使用流读写数据386

不同的流读写不同的数据387

FileStream向文件写字节388

读和写需要两个对象393

数据可以经过多个流394

使用内置对象弹出标准对话框397

对话框也是对象399

使用内置File和Directory类处理文件和目录400

使用文件对话框打开和保存文件403

IDisposable确保对象适当地撤销405

利用using语句避免文件系统错误406

写文件通常要做大量决策412

使用switch语句做出正确的选择413

增加一个重载Deck()构造函数,从文件读入一副牌415

对象串行化时发生了什么?417

到底什么是对象的状态?哪些需要保存?418

对象串行化时,它引用的所有对象也要串行化……419

利用串行化可以一次读或写整个对象420

如果希望类可以串行化,要用[Serializable]属性来标志421

.NET自动将文本转换为Unicode425

C#可以使用字节数组移动数据426

使用Binary Writer写二进制数据427

还可以手动读写串行化文件429

StreamReader和StreamWriter就能胜任433

10异常处理 救火太老套440

Brian希望他的借口能够转移440

程序抛出一个异常时,NET会生成一个Exception对象444

Brian的代码做了出乎意料的事情446

所有异常对象都继承自Exception448

调试工具可以帮助跟踪和避免代码中的异常449

使用IDE的调试工具准确找出借口管理系统中哪里出了问题450

唉呀——代码还是有问题……453

用try和catch处理异常455

想调用的方法有风险会导致什么结果?456

使用调试工具完成try/catch流程458

如果有些代码始终运行,可以使用一个finally块460

使用Exception对象得到问题的有关信息465

使用多个catch块处理多种类型的异常466

一个类抛出异常,另一个类捕获异常467

蜜蜂需要一个OutOfHoney异常468

避免大量问题的一种简便方法:使用using,可以轻松实现try和finally471

避免异常:实现IDisposable完成自己的清理472

史上最糟糕的catch块:注释474

临时方案是允许的(权宜之计)475

关于异常处理的一些简单想法476

Brian终于能度假了……481

11事件与委托 没有你的监视,代码自己在做什么484

希望你的对象自己考虑问题吗?484

不过一个对象怎么知道要做出响应呢?484

出现一个事件时……对象会监听485

一个对象产生事件,其他对象监听……486

然后,其他对象处理这个事件487

把各部分连接起来488

IDE会为你自动创建事件处理程序492

之前创建的窗体都使用了事件498

连接事件发送者和事件接收者500

委托代表一个具体的方法501

委托的实际演练502

任何对象都可以订购公共事件……505

使用回调而不是事件,只向委托准确地关联一个对象507

回调使用委托,而不是事件508

12复习与预习 知识,能力,动手实践516

你已经学了不少了,伙计516

我们还成了不错的养蜂人517

蜂巢模拟系统体系结构518

构建蜂巢模拟系统519

花的生与死523

现在需要一个Bee类524

填写Hive类532

蜂巢的Go()方法533

准备构建World534

我们要构建一个基于轮的系统535

为蜜蜂提供行为542

主窗体告诉World调用Go()推进544

可以使用World得到统计信息545

定时器反复触发事件546

定时器在后台使用了委托547

下面处理蜜蜂分组554

用集合来收集……数据555

利用LINQ,可以很容易地处理数据库和集合中的数据557

13控件与图片 应用的美化564

你一直在使用控件与程序交互564

窗体控件也只是对象565

在体系结构中增加Renderer568

控件很适合表示可视化显示元素570

构建第一个动画控件573

控件还需要撤销它们的控件!577

UserControl是构建控件的简便方法578

为项目增加蜂巢和花园窗体582

构建Renderer583

仔细考虑性能问题590

使用一个Graphics对象调整Bitmap大小592

图像资源存储在Bitmap对象中593

使用System.Drawing自行控制图形化594

GDI+图形化30秒之旅595

使用Graphics在窗体上绘制图片596

Graphics可以修正我们的透明问题……601

使用Paint事件固定图形602

进一步分析窗体和控件如何自行重绘605

双缓冲使动画看起来更平滑608

双缓冲已经内置到窗体和控件中609

使用Graphics对象和事件处理程序完成打印614

PrintDocument处理打印对话框和打印预览窗口对象615

14CAPTAIN AMAZING:对象之死622

Captain Amazing,Objectville最出色的对象,正在追捕他的主要对手……622

你努力的最后机会……对象的最终化方法628

最终化方法到底何时运行?629

Dispose()处理using,最终化方法处理垃圾回收630

最终化方法不能依赖于稳定性632

让对象在Dispose()中自行串行化633

与此同时,在Objectville大街上……636

struct看起来像是一个对象……637

……但没有放在堆上637

复制值,指定引用638

struct是值类型;对象是引用类型639

栈与堆:再谈内存641

Captain Amazing……不充分645

扩展方法为现有类增加新行为646

扩展一个基本类型:string648

15LINQ 让数据在你的掌控之中654

一个简单的项目……654

……但是到处都是数据655

LINQ可以从多个来源取出数据656

已经为LINQ建立了.NET集合657

LINQ查询很容易658

LINQ很简单,但是你的查询不一定简单659

LINQ是个多面手662

LINQ可以将结果合并分组667

将Jimmy漫画书的价格合并分组668

使用join将两个集合合并到一个查询671

Jimmy省了很多钱672

将LINQ连接到一个SQL数据库674

使用一个join查询连接Starbuzz和Objectville678

C#实验室3 入侵者682

经典的视频游戏682

还有很多可以做……701

i其他 本书最想介绍的5大内容704

#1 LINQ to XML704

#2重构706

#3我们最喜欢的一些工具箱组件708

#4控制台应用710

#5Windows表现基础库712

你知道C#和NET Framework的以下功能吗?714

热门推荐