王朝百科
分享
 
 
 

C#捷径教程

王朝百科·作者佚名  2010-07-10  
宽屏版  字体: |||超大  

C#捷径教程

版权信息书 名: C#捷径教程

作者:(美国)(TreyNash)纳什

出版社:人民邮电出版社

出版时间: 2009

ISBN: 9787115192585

开本: 16

定价: 59.00 元

内容简介C#3.0提供了很多强大的特性,通过使用lambda表达式、扩展方法和语言集成查询(LINQ),方便地引入了函数式编程,使C#程序员如虎添翼。《#捷径教程》通过许多精彩的示例介绍了每个特性,深入浅出地讲解了C#语言的核心概念,以及如何聪明地应用C#的习惯用法和面向对象的设计模式来挖掘C#和CLR的能力。

《#捷径教程》适合有一定编程经验的程序员阅读。

作者简介TreyNash,知名.NET技术专家。现于领先的无线设备提供商CSR公司担任主任工程师。负责蓝牙解决方案的开发。在转向.NET平台之前。他有丰富的COM,DCOM/ATL编程经验。

编辑推荐如果你已经有一定C#或者其他语言的编程经验,就完全不用去读那些肤浅的入门书或者冗长繁复的大部头。《C#捷径教程》将为你提供一条快速掌握C#的捷径。

作者在不大的篇幅里容纳了丰富扎实的内容,不仅全面涵盖了C#的语言特性,包括3.O引入的Lambda表达式、扩展方法和LlNQ等,总结了正确使用C#的习惯用法和设计模式。而且深入探讨了CLR。书中大量富于启发性的实例和经验之谈。更能让你的软件开发水平得到质的飞跃。

好评如潮的C#实战图书

汲取.NET技术精髓的捷径

专章讲述习惯用法与设计模式

目录第1章C#预览1

1.1C#和C++的区别1

1.1.1C#1

1.1.2C++1

1.1.3CLR垃圾回收2

1.2C#程序示例3

1.3C#2.0扩展特性概述4

1.4C#3.0新特性概览5

1.5小结6

第2章C#和CLR7

2.1CLR中的JIT编译器7

2.2程序集及程序集加载器9

2.2.1最小化程序的工作集9

2.2.2给程序集命名9

2.2.3加载程序集10

2.3元数据10

2.4交叉语言的兼容性11

2.5小结12

第3章C#语法概述13

3.1C#是一门强类型的语言13

3.2表达式14

3.3语句和表达式15

3.4类型和变量15

3.4.1值类型16

3.4.2引用类型19

3.4.3默认变量初始化20

3.4.4隐式类型化局部变量20

3.4.5类型转换22

3.4.6as和is操作符23

3.4.7泛型25

3.5命名空间26

3.5.1定义命名空间27

3.5.2使用命名空间28

3.6控制流29

3.6.1if-else、while、do-while和for29

3.6.2switch29

3.6.3foreach30

3.6.4break、continue、goto、return和throw31

3.7小结31

第4章类、结构和对象32

4.1类定义33

4.1.1字段34

4.1.2构造函数36

4.1.3方法37

4.1.4属性38

4.1.5封装42

4.1.6可访问性45

4.1.7接口46

4.1.8继承47

4.1.9密封类53

4.1.10抽象类53

4.1.11嵌套类54

4.1.12索引器57

4.1.13分部类59

4.1.14分部方法59

4.1.15静态类61

4.1.16保留的成员名字62

4.2值类型定义63

4.2.1构造函数63

4.2.2this的含义65

4.2.3终结器68

4.2.4接口68

4.3匿名类型68

4.4对象初始化器71

4.5装箱和拆箱73

4.5.1什么时候发生装箱77

4.5.2效率和混淆78

4.6System.Object79

4.6.1等同性及其意义80

4.6.2IComparable接口81

4.7创建对象81

4.7.1new关键字81

4.7.2字段初始化82

4.7.3静态(类)构造函数83

4.7.4实例构造函数和创建顺序85

4.8销毁对象89

4.8.1终结器89

4.8.2确定性的析构90

4.8.3异常处理91

4.9可清除对象91

4.9.1IDisposable接口91

4.9.2using关键字93

4.10方法参数类型95

4.10.1值参数95

4.10.2ref参数95

4.10.3out参数97

4.10.4参数数组97

4.11方法重载98

4.12继承和虚方法98

4.12.1虚方法和抽象方法98

4.12.2override和new方法99

4.12.3密封方法100

4.12.4关于C#虚方法再啰嗦几句101

4.13继承,包含和委托101

4.13.1接口继承和类继承的选择101

4.13.2委托和组合与继承102

4.14小结104

第5章接口和契约105

5.1接口定义类型105

5.2定义接口107

5.2.1接口中可以有什么107

5.2.2接口继承与成员隐藏108

5.3实现接口110

5.3.1隐式接口实现110

5.3.2显式接口实现110

5.3.3派生类中覆盖接口实现112

5.3.4小心值类型实现接口的副作用115

5.4接口成员匹配规则116

5.5值类型的显示接口实现119

5.6版本考虑121

5.7契约122

5.7.1类实现契约122

5.7.2接口契约123

5.8在接口和类之间选择124

5.9小结127

第6章重载操作符128

6.1只因为:可以并不意味着应该128

6.2重载操作符的类型和格式128

6.3操作符不应该改变其操作数129

6.4参数顺序有影响么130

6.5重载加法运算符130

6.6可重载的操作符131

6.6.1比较操作符132

6.6.2转换操作符134

6.6.3布尔操作符136

6.7小结139

第7章异常处理和异常安全140

7.1CLR如何对待异常140

7.2C#里的异常处理机制140

7.2.1抛出异常141

7.2.2.NET2.0开始的未处理异常的变化141

7.2.3try语句语法预览142

7.2.4重新抛出异常和转译异常144

7.2.5finally代码块抛出的异常146

7.2.6终结器抛出的异常146

7.2.7静态构造函数抛出的异常147

7.3谁应该处理异常148

7.4避免使用异常来控制流程149

7.5取得异常中立149

7.5.1异常中立代码的基本结构149

7.5.2受限执行区域154

7.5.3临界终结器和SafeHandle156

7.6创建定制的异常类159

7.7使用分配的资源和异常161

7.8提供回滚行为164

7.9小结167

第8章使用字符串168

8.1字符串概述168

8.2字符串字面量169

8.3格式指定和全球化170

8.3.1Object.ToString、IFormattable和CultureInfo170

8.3.2创建和注册自定义CultureInfo类型171

8.3.3格式化字符串173

8.3.4Console.WriteLine和String.Format174

8.3.5自定义类型的字符串格式化举例175

8.3.6ICustomFormatter176

8.3.7字符串比较178

8.4处理来自外部的字符串179

8.5StringBuilder181

8.6使用正则表达式搜索字符串182

8.6.1使用正则表达式搜索183

8.6.2搜索和分组184

8.6.3使用正则表达式替换文本187

8.6.4正则表达式创建选项189

8.7小结191

第9章数组、容器类型和迭代器192

9.1数组介绍192

9.1.1隐式类型化数组193

9.1.2类型的转换和协方差195

9.1.3排序和搜索195

9.1.4同步196

9.1.5向量与数组196

9.2多维矩形数组198

9.3多维锯齿数组199

9.4容器类型201

9.4.1比较ICollectionT和ICollection201

9.4.2容器同步202

9.4.3列表203

9.4.4字典203

9.4.5集合204

9.4.6System.Collections.ObjectModel204

9.4.7效率207

9.5IEnumerableT、IEnumeratorT、IEnumerable和IEnumerator208

9.6迭代器211

9.7容器初始化器220

9.8小结220

第10章委托,匿名方法和事件222

10.1委托概览222

10.2委托的创建和使用223

10.2.1单委托223

10.2.2委托链224

10.2.3迭代委托链226

10.2.4非绑定(公开实例)的委托227

10.3事件230

10.4匿名方法233

10.4.1注意捕获变量的使用237

10.4.2匿名方法作为委托参数绑定器239

10.5Strategy模式243

10.6小结244

第11章泛型245

11.1泛型和C++模板之间的区别246

11.2泛型的效率和类型安全246

11.3泛型的类型定义和构造类型248

11.3.1泛型类和结构249

11.3.2泛型接口251

11.3.3泛型方法251

11.3.4泛型委托253

11.3.5泛型转换256

11.3.6默认值表达式257

11.3.7Nullable类型258

11.3.8构造类型访问权限控制260

11.3.9泛型和继承260

11.4约束261

11.5泛型系统容器266

11.6泛型系统接口268

11.7精选的问题和解决方案269

11.7.1泛型类型中的转化和操作符269

11.7.2动态地创建构造类型277

11.8小结279

第12章C#中的线程280

12.1C#和.NET中的线程280

12.1.1开始线程编程281

12.1.2IOU模式和异步方法调用283

12.1.3线程状态283

12.1.4终止线程286

12.1.5停止和唤醒休眠线程287

12.1.6等待线程退出288

12.1.7前台和后台线程288

12.1.8线程本地存储289

12.1.9非托管线程和COM套件如何适应292

12.2线程间同步工作293

12.2.1用Interlocked类实现轻量级的同步295

12.2.2Monitor类299

12.2.3锁对象307

12.2.4信号量311

12.2.5事件312

12.2.6Win32的同步对象和WaitHandle313

12.3使用线程池315

12.3.1异步方法调用315

12.3.2定时器322

12.4小结323

第13章C#规范形式探索324

13.1引用类型的规范形式324

13.1.1类默认是密封的325

13.1.2使用非虚拟接口模式326

13.1.3对象是否可克隆328

13.1.4对象是否可清除333

13.1.5对象需要终结器吗336

13.1.6对象相等意味着什么342

13.1.7如果重写了Equals方法,那么也应该重写GetHashCode方法348

13.1.8对象支持排序吗350

13.1.9对象需要形式化显示吗353

13.1.10对象可以被转换吗356

13.1.11在所有情况下都保证类型安全357

13.1.12使用非可变的引用类型361

13.2值类型的规范形式364

13.2.1为了获得更好的性能而重写Equals方法364

13.2.2值类型需要支持接口吗368

13.2.3将接口成员和派生方法实现为类型安全的形式369

13.3小结371

13.3.1引用类型的检查单372

13.3.2值类型的检查单373

第14章扩展方法374

14.1扩展方法介绍374

14.1.1编译器如何发现扩展方法375

14.1.2探究内部实现377

14.1.3代码易读性与代码易懂性378

14.2使用建议379

14.2.1考虑扩展方法优先于继承379

14.2.2分离的命名空间中的隔离扩展方法380

14.2.3修改一个类型的契约可能会打破扩展方法381

14.3转换381

14.4链式操作385

14.5自定义迭代器386

14.6访问者模式392

14.7小结396

第15章lambda表达式397

15.1lambda表达式介绍397

15.1.1lambda表达式398

15.1.2lambda语句402

15.2表达式树403

15.2.1对表达式的操作404

15.2.2函数的数据表现405

15.3lambda表达式的有益应用406

15.3.1迭代器和生成器重访问406

15.3.2闭包(变量捕获)和缓存409

15.3.3currying413

15.3.4匿名递归415

15.4小结416

第16章LINQ:语言集成查询417

16.1连接数据的桥梁417

16.1.1查询表达式418

16.1.2再谈扩展方法和lambda表达式420

16.2标准查询操作符420

16.3C#查询关键字422

16.3.1from子句和范围变量422

16.3.2join子句423

16.3.3where子句和过滤器425

16.3.4orderby子句425

16.3.5select子句和投影426

16.3.6let子句427

16.3.7group子句429

16.3.8into子句和持续性431

16.4偷懒的好处432

16.4.1C#迭代器鼓励懒惰432

16.4.2不能偷懒433

16.4.3立即执行查询435

16.4.4再谈表达式树435

16.5函数式编程中的技术436

16.5.1自定义标准查询操作符和延迟求值436

16.5.2替换foreach语句443

16.6小结444

……

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有