krzysztof cwalina 微软公司公共语言运行库(clr)的项目经理。他曾为.net框架的首个版本设计api,并负责框架中的多个名字空间,包括system.collections、system.diagnostics、system.messaging,等等。他也是fxcop开发组的发起成员之一。目前,他正致力于在整个公司范围内开发推广设计规范,并将其应用到.net框架和winfx中。
brad abrams 微软公司公共语言运行库开发组和.net框架开发组的创始成员之一,目前是lead program manager。brad也是公共语言规范(cls)、.net框架设计规范及ecmaiso cli标准中程序库标准的主编。brad与他人合著了programming in the .net environment,他还是.net framework standard library annotated reference(卷1和卷2)的编辑。读者可以从他的blog:http://blogs.msdn.com/brada/中了解他最新的想法。
葛子昂,1998年毕业于南京理工大学计算机系,目前就职于微软亚洲工程院上海分院,致力于windows server的相关研发。之前曾先后任职于上海育碧电脑软件有限公司和上海旭上电子有限公司,从事游戏软件的开发及图形处理器的设计。
第1章 概述 1
1.1 精心设计的框架所具备的品质 2
1.1.1 精心设计的框架是简单的 2
1.1.2 精心设计的框架设计代价高 3
1.1.3 精心设计的框架充满利弊权衡 3
1.1.4 精心设计的框架应该借鉴过去 4
1.1.5 精心设计的框架要考虑未来发展 4
1.1.6 精心设计的框架应具有良好的集成性 4
1.1.7 精心设计的框架是一致的 4
第2章 框架设计基础 6
2.1 渐进框架 7
2.2 框架设计的基本原则 10
2.2.1 场景驱动设计的原则 11
2.2.2 低门槛原则 17
2.2.3 自说明对象模型原则 20
2.2.4 分层架构原则 25
2.3 小结 27
第3章 命名规范 28
3.1 大小写约定 29
3.1.1 标识符的大小写规则 29
.3.1.2 首字母缩写词的大小写 31
3.1.3 复合词和常用术语的大小写 33
3.1.4 是否区分大小写 35
3.2 通用命名约定 35
3.2.1 单词的选择 36
3.2.2 使用单词缩写和首字母缩写词 37
3.2.3 避免使用语言特有的名字 38
3.2.4 为已有api的新版本命名 39
3.3 程序集和dll的命名 42
3.4 名字空间的命名 43
3.5 类、结构和接口的命名 47
3.5.1 泛型类型参数的命名 49
3.5.2 常用类型的命名 50
3.5.3 枚举类型的命名 51
3.6 类型成员的命名 53
3.6.1 方法的命名 53
3.6.2 属性的命名 54
3.6.3 事件的命名 55
3.6.4 字段的命名 57
3.7 参数的命名 57
3.8 资源的命名 58
3.9 小结 59
第4章 类型设计规范 60
4.1 类型和名字空间 62
4.2 类和结构之间的选择 67
4.3 类和接口之间的选择 69
4.4 抽象类的设计 76
4.5 静态类的设计 78
4.6 接口的设计 79
4.7 结构的设计 81
4.8 枚举的设计 83
4.8.1 标记枚举的设计 89
4.8.2 给枚举添加值 93
4.9 嵌套类型 94
4.10 小结 96
第5章 成员设计 97
5.1 成员设计的一般规范 97
5.1.1 成员重载 97
5.1.2 显式地实现接口成员 102
5.1.3 属性和方法之间的选择 106
5.2 属性的设计 112
5.2.1 索引属性的设计 113
5.2.2 属性改变的通知事件 115
5.3 构造函数的设计 117
5.4 事件的设计 123
5.5 字段的设计 130
5.6 操作符重载 132
5.6.1 重载operator== 136
5.6.2 类型转换操作符 136
5.7 参数的设计 138
5.7.1 枚举和布尔参数之间的选择 140
5.7.2 参数的验证 142
5.7.3 参数的传递 145
5.7.4 参数数量可变的成员 147
5.7.5 指针参数 150
5.8 小结 152
第6章 为扩展性而设计 153
6.1 扩展机制 153
6.1.1 非密封类 153
6.1.2 保护成员 155
6.1.3 事件与回调函数 156
6.1.4 虚成员 158
6.1.5 抽象(抽象类型与抽象接口) 160
6.2 基类 162
6.3 密封 163
6.4 小结 166
第7章 异常 167
7.1 抛出异常 171
7.2 为抛出的异常选择合适的类型 175
7.2.1 错误消息的设计 176
7.2.2 异常处理 177
7.2.3 对异常进行封装 182
7.3 标准异常类型的使用 184
7.3.1 exception与systemexception 184
7.3.2 applicationexception 184
7.3.3 invalidoperationexception 184
7.3.4 argumentexception、argumentnullexception 及argumentoutofrangeexception 185
7.3.5 nullreferenceexception、indexoutofrangeexception及accessviolationexception 186
7.3.6 stackoverflowexception 186
7.3.7 outofmemoryexception 187
7.3.8 comexception、sehexception及其他clr异常 188
7.3.9 executionengineexception 188
7.4 自定义异常的设计 188
7.5 异常与性能 190
7.5.1 tester-doer模式 190
7.5.2 try-parse模式 191
7.6 小结 192
第8章 使用规范 193
8.1 数组 193
8.2 attribute 195
8.3 集合 198
8.3.1 集合参数 199
8.3.2 集合属性与返回值 200
8.3.3 数组与集合之间的选择 204
8.3.4 自定义集合的实现 205
8.4 icloneable 207
8.5 icomparable[t]与iequatable[t] 208
8.6 idisposable 210
8.7 对象 210
8.7.1 object.equals 210
8.7.2 object.gethashcode 212
8.7.3 object.tostring 213
8.8 uri 214
8.9 system.xml的使用 216
8.10 相等性操作符 218
8.10.1 值类型的相等性操作符 218
8.10.2 引用类型的相等性操作符 219
第9章 常用的设计模式 220
9.1 聚合组件 220
9.1.1 面向组件的设计 222
9.1.2 因子类型 224
9.1.3 聚合组件规范 224
9.2 async模式 227
9.3 dispose模式 232
9.3.1 基本dispose模式 234
9.3.2 可终结类型 240
9.4 factory模式 243
9.5 optional feature模式 247
9.6 template method模式 251
9.7 超时 252
9.8 结束语 254
附录a c#编程风格约定 255
a.1 通用风格约定 255
a.1.1 花括号的使用 255
a.1.2 空格的使用 257
a.1.3 缩进的使用 259
a.2 命名约定 259
a.3 注释 260
a.4 文件的组织 261
附录b 通过fxcop来实施设计规范 263
b.1 fxcop是什么? 263
b.2 fxcop的发展过程 264
b.3 fxcop的工作原理 265
b.4 fxcop规范的覆盖范围 265
b.4.1 与命名规范有关的fxcop规则 265
b.4.2 与类型设计规范有关的fxcop规则 274
b.4.3 与成员的设计有关的fxcop规则 277
b.4.4 与为扩展性而设计有关的fxcop规则 284
b.4.5 与异常有关的fxcop规则 285
b.4.6 与使用规范有关的fxcop规则 287
b.4.7 与设计模式有关的fxcop规则 291
附录c api规范样例 292
术语表 299
推荐读物 303
索引 305
《生命3.0》内容简介:在人工智能崛起的当下,你希望看到一个什么样的未来?当超越人类智慧的人工智能出现时,人类将何去何从?你是
《英语畅谈世界文化100主题》内容简介:本书精选100篇情景对话,以中英双语解读世界各国的文化风情,书中别有韵味的风土人情、炫目
Withthesecondeditionofthispopularbook,youlllearnhowtobuildHTML5andCSS3-basedapps...
《版权法对技术措施的保护与规制研究》内容简介:本书探讨了版权法保护与规制技术措施的诸问题。包括版权法中技术措施的概念、分类
《程控交换与宽带交换》以程控交换、ATM交换到MPLS交换的技术发展为线索,对程控交换和宽带交换进行介绍。重点介绍程控交换技术和
现代通信原理分上、下两册,本书是上册,主要介绍通信的基本原理、分析方法及信号传输系统。本书共7章,内容包括绪论、预备基础知
《美得令人心醉的宋词》内容简介:《美得令人心醉的宋词》是特别针对现代初阶宋词爱好者而编辑的宋词选本,是新时代的宋词基本读本
没有编程基础,被C语言的术语和细节搞得晕头转向,手头的教科书无数次拿起又放下、总是读不进去,甚至已经开始考虑放弃?不要灰心
《电子商务发展与乡村振兴战略:以西藏地区为例》内容简介:优先发展农业农村,全面推进乡村振兴,走中国特色社会主义乡村振兴道路
《数字设计和计算机体系结构》以一种流行的方式介绍了从计算机组织和设计到更细节层次的内容,涵盖了数字逻辑设计的主要内容,展
"Readerssearchingforawiderangingandup-to-dateviewoffibreopticcommunicationsystem...
本书以AndroidApp视觉与体验设计为主题,简要清晰地回答了什么是AndroidApp的视觉与体验设计、它为什么重要、它有什么特殊的地方
机器人学导论-(原书第3版) 本书特色 Craig教授根据机器人学的特点,将理论和实际应用密切结合,按照刚体力学、分析力学、机构学和控制理论中的原理和定义对机器...
数据库系统原理(计算机及应用专业独立本科段)2006版全国高等教育自学考试指定教材 内容简介 《2007年版全国高等教育自学考试指定教材:数据库系统原理》是全国...
本书是日本最畅销的大数据商业应用指南。书中结合野村综合研究独家披露的调查数据,网罗了美国、日本标杆企业与政府的应用案例,
和秋叶一起学PPT-又快又好打造说服力幻灯片-第2版 本书特色《和秋叶一起学ppt: 又快又好打造说服力幻灯片(第2版)》适合ppt初学者,但即便你是一个ppt...
此书是《从零开始做运营》系列的入门篇。在互联网产品经理热的今天,关于传统的网站与产品运营的书籍一直非常缺乏,很多有志于互
《心智模型的阐释:结构、过程与影响》主要内容:共享心智模型和目前企业流行的理念——学习型组织有着密切的关系。作为创建学习型
《装帧之美》由日本设计大师铃木成一亲自挑选在他长达近三十年的设计生涯、八千件的作品中,最具代表性的一百二十件作品,并且详
《走出自闭——如何与孤独症儿童有效沟通互动的38堂康复课》内容简介:孤独症是一种伴随一个人终生的神经发育迟缓病症,所以不论是