.NET 设计规范--.NET约定、惯用法与模式--8.使用规范

  这里就如何在公用API中使用常用类型提供提供一些规范。

  8.1数组

  要在公用API中优先使用集合,而不是优先使用数组。

  不要使用只读的数组字段。虽然字段本身是只读的,用户不能对其进行修改,但对用户可以修改数组中的元素

  有两种方法可以避免使用只读的数组字段,一种是使用只读的集合,另一种是在返回数组之前对其进行复制

  考虑使用不规则数组(jagged array),而不是要使用多维数组

  //jagged arrays

  int [][] jaggedArray={

  new int[]{1,2,3,4},

  new int[]{5,6,7},

  new int[]{8},

  new int[]{9}

  };

  //multidimension arrays

  int [,] multidmensional arrays

  {

  {1,2,3,4},

  {5,6,70},

  {8,0,0,0},

  {9,0,0,0}

}

8.2 attribute

  System.Attribute 是个基类,用户可以用它来定制自己的attribute。

  当使用attribute时,有一些属性是必须由用户指定。用于这些属性通过构造函数中的必填参数来表示,因此称为必填属性(required property)或必填参数(required argument)。

  当使用attribute时,不是必须指定的那些属性称为可选属性(optional property)或可选参数(optional argument),它们通过可设置的属性来表示。

  要在命名自定义attribute类时添加"Attribute"后缀

  要在定义自己的attribute时使用AttriubteUsageAttribute

  要为可选参数提供可设置的属性

  要为必填参数提供自读属性

  要提供工作函数参数来对必填参数进行初始。每个参数名应该与相应的属性名相同

  避免提供构造函数参数来对于可选参数对应的属性进行初始

  避免对自定义attribute的构造函数进行重载

  要尽可能将自定义attribute类密封起来。这样会使查找attribute更快

8.3 集合

  为了对一组有共同特征的对象进行操作而特别设计的任何类型,都可以称为集合(Collection)。

  不要在公有API中使用弱类型集合,如果返回值和参数表示一个集合元素,那么其类型应该与元素类型完全一致,而不应该使元素类型的任何基类。

  不要在公有API中使用ArrayList或List<T>

  不要在公有API中使用Hashtable或Dictionary<TKey,TValue>

  不要使用IEnumberator<T>、IEnumreator或实现了这两个接口之一的任何其他类型,触发是作为GetEnumerator方法的返回值。

转载于:https://www.cnblogs.com/lufangtao/archive/2012/04/17/2453168.html

清晰完整PDF版本,第二版,清晰完整。 .NET设计规范约定惯用模式(第2版)克瓦林纳 2/5 .NET 设计规范 约定惯用模式 第2版 克瓦林纳 定 价:69.00元 作  者:(美)克瓦林纳 等著,葛子昂 译 出 版 社:人民邮电出版社 出版时间:2010-5-1 页  数:370 字  数:579000 I S B N:9787115226518 -------------------------------------------------------------------------------- 数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师Anders Hejlsberg、Jeffrey Richter和Paul Vick等的声音,读来令人兴味盎然。   本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NET Framework 3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NET Framework创建高质量的应用程序至关重要。   本书提供配套光盘,内含Designing .NET Class Libraries等13个演讲视频。此外,光盘还包括.NET Framework类和组件设计指南、API规范样例以及其他有用的资源和工具。 :数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师Anders Hejlsberg、Jeffrey Richter和Paul Vick等的声音,读来令人兴味盎然。   本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NET Framework 3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NET Framework创建高质量的应用程序至关重要。   本书提供配套光盘,内含Designing .NET Class Libraries等13个演讲视频。此外,光盘还包括.NET Framework类和组件设计指南、API规范样例以及其他有用的资源和工具。 作者简介 -------------------------------------------------------------------------------- Krzysztof Cwalina 微软公司.NET Framework开发组项目经理。他为.NET Framework设计了多个API,还开发了FxCop等框架开发工具。目前,他正致力于在微软内部开发推广设计规范,将其应用到.NET Framework中,同时负责核心.NET Framework API的交付。 :Krzysztof Cwalina 微软公司.NET Framework开发组项目经理。他为.NET Framework设计了多个API,还开发了FxCop等框架开发工具。目前,他正致力于在微软内部开发推广设计规范,将其应用到.NET Framework中,同时负责核心.NET Framework API的交付。 目录 -------------------------------------------------------------------------------- 第1章 概述  1.1 精心设计的框架所具备的品质   1.1.1 精心设计的框架是简单的   1.1.2 精心设计的框架设计代价高   1.1.3 精心设计的框架充满利弊权衡   1.1.4 精心设计的框架应该借鉴过去的经验   1.1.5 精心设计的框架要考虑未来发展   1.1.6 精心设计的框架应具有良好的集成性   1.1.7 精心设计的框架是一致的 第2章 框架设计基础  2.1 渐进框架  2.2 框架设计的基本原则   2.2.1 围绕场景进行设计的原则   2.2.2 低门槛原则   2.2.3 自说明对象模型原则 显示全部信息 :第1章 概述  1.1 精心设计的框架所具备的品质   1.1.1 精心设计的框架是简单的   1.1.2 精心设计的框架设计代价高   1.1.3 精心设计的框架充满利弊权衡   1.1.4 精心设计的框架应该借鉴过去的经验   1.1.5 精心设计的框架要考虑未来发展   1.1.6 精心设计的框架应具有良好的集成性   1.1.7 精心设计的框架是一致的 第2章 框架设计基础  2.1 渐进框架  2.2 框架设计的基本原则   2.2.1 围绕场景进行设计的原则   2.2.2 低门槛原则   2.2.3 自说明对象模型原则   2.2.4 分层架构原则  2.3 小结 第3章 命名规范  3.1 大小写约定   3.1.1 标识符的大小写规则   3.1.2 首字母缩写词的大小写   3.1.3 复合词和常用术语的大小写   3.1.4 是否区分大小写  3.2 通用命名约定   3.2.1 单词的选择   3.2.2 使用单词缩写和首字母缩写词   3.2.3 避免使用编程语言特有的名字   3.2.4 为已有API的新版本命名  3.3 程序集和DLL的命名  3.4 名字空间的命名  3.5 类、结构和接口的命名   3.5.1 泛型类型参数的命名   3.5.2 常用类型的命名   3.5.3 枚举类型的命名  3.6 类型成员的命名   3.6.1 方的命名   3.6.2 属性的命名   3.6.3 事件的命名   3.6.4 字段的命名  3.7 参数的命名  3.8 资源的命名  3.9 小结 第4章 类型设计规范  4.1 类型和名字空间  4.2 类和结构之间的选择  4.3 类和接口之间的选择  4.4 抽象类的设计  4.5 静态类的设计  4.6 接口的设计  4.7 结构的设计  4.8 枚举的设计   4.8.1 标记枚举的设计   4.8.2 给枚举添加值  4.9 嵌套类型  4.10 类型和程序集元数据  4.11 小结 第5章 成员设计 第6章 扩展性设计 第7章 异常 第8章 使用规范 第9章 常用的设计模式 附录A C#编程风格约定 附录B 通过FxCop来实施设计规范 附录C API规格书样例 术语表 推荐读物
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值