设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3059|回复: 1
打印 上一主题 下一主题

【转发】C#3.0规范

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-25 09:08:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
http://msdn.microsoft.com/en-us/vcsharp/aa336745.aspx

关于设计的声明
1. 抽象类不应该声明构造方法
2. 程序集应该具有强名称
3. 避免使用空的接口
4. 避免在泛型类中使用过多的类型参数
5. 避免让名字空间含有过少的类型
6. 避免使用 out类型的参数
7. 集合类应该实现泛型接口
8. 尽量使用基本类型作为参数
9. 正确的声明事件处理器,事件处理器不应该具有返回值
10.应该在名字空间里面定义类型,而不是外面
11.不应该使用参数默认值(C#没有参数默认值)
12.应该为特性(特性)的构造方法参数定义访问器,其名字跟构造方法参数仅首字母大小写不一样
13.不要捕捉普通的异常(即System.Exception)
14.不要在封闭类型中定义受保护的成员
15.不要在泛型类型中使用静态成员
16.不要在封闭类型中定义虚成员
17.不要定义可见的(public/internal)实例域变量
18.不要直接暴露范型表
19.不要隐藏(使用或者不使用new)基类的方法
20.不要在成员的签名(参数或者返回值)中嵌套泛型类
21.不要在引用类型中重载==操作符
22.不要使用引用(ref or out)传递类型
23.枚举应该是 Int32 类型的
24.枚举器应该是强类型的
25.枚举应该具有0值
26.泛型类的方法应该提供类型参数
27.集合接口的实现中应该使用强类型的成员
28.自定义的异常应该实现异常类的四个标准构造方法
29.索引不应该是多维的
30.接口方法应该可以被子类调用
31.表应该是强类型的
32.用程序集版本标示程序集
33.使用CLSCompliant特性标示程序集
34.使用 System.Runtime.InteropServices.ComVisibleAttribute 特性标示程序集
35.使用 AttributeUsageAttribute 特性标示特性类
36.含有组合的枚举应该使用FlagsAttribute特性标示,相反则不应该
37.成员(返回值或者参数)不应该暴露具体类型,尽量使用接口
38.将调用移到本地方法类(不是很理解)
39.嵌套类型不应该是可见的
40.可比较类型应该重写 equals 等方法
41.在重写+和-运算的时候应该同时重写==操作符
42.属性不应该是只写的
43.过时的成员应该使用ObsoleteAttribute特性标示,并提供相应的Message提示使用者
44.使用参数数组代替重复的参数
45.仅含有静态成员的类型应该声明为封闭的
46.仅含有静态成员的类型应该具有构造方法
47.使用string类型的uri参数的重载应调用系统的使用URI类型参数的重载
48.类型不应该从具体的类(已经过派生的类)继承,比如异常类不应该从ApplicationException继承,而应该从System.Exception继承
49.含有可释放成员的类型应该是可以释放的(实现IDisposable接口)
50.使用了非托管资源的类型应该是可以释放的(实现IDisposable接口)
51.Uri 参数不应该是string类型的
52.Uri 属性不应该是string类型的
53.Uri 类型的返回值不应该是string类型的
54.在适当的时候使用事件
55.使用泛型的事件处理器实例
56.在适当的时候使用范型
57.索引器应该使用整数或者字符串类型的参数
58.在适当的时候使用属性(而不是以Get或者Set开头的方法)
59.对public的方法的参数应该在方法开头处进行检验(比如是否为null的检验)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2014-3-11 17:24:24 | 只看该作者
火钳刘明
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 03:20 , Processed in 0.097779 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表