C# 接口命名规范

接口命名规范:
1.大写约定
PascalCasing:帕斯卡命名法,每一个单词首字母大写
应用场景:命名空间、类型、接口、方法、属性、事件、字段、枚举、枚举值
eg:HtmlTag IOStream
注意:两个字母的缩略词,两个字母都要大写 IOStreamhtml

camelCasing:首字母小写(双字母缩写都小写)
应用场景:参数
eg:htmlTag ioStream编程

 

2.通用命名约定
word选择:
选择易读标识符名称
可读性高于简洁性
不要用_、连字符或数字
不要用匈牙利表示法
避免和编程关键字冲突的标识符spa

使用缩写和首字母缩写词:
不要在标识符中使用缩写形式或缩略形式
不要使用不经常使用缩写形式
eg:GetWindow 非 GetWinhtm

避免特定于语言的名称:
选择有意义的名称,eg:GetLength 非 GetInt接口

为现有API的新版本命名:
使用旧版API相似的名称
优先用后缀体现新版本
考虑使用全新但有意义的标识符
在添加任何有意义的后缀都不合适的状况下,用数字后缀指示新版本
不要用"Ex"(或相似)表示不一样版本事件

 

3.程序集和DLL的名称
为程序集DLL选择令人联想到大量功能的名称资源

 

4.命名空间的名字
规则:<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
用一个公司做为前缀
第二级名称使用稳定的、与版本无关的名称
使用PascalCasing命名法
适当使用复数形式
不要引入泛型类型名称、如:Element、Node、Log和Message等等
应用程序模块命名空间
基础结构命名空间
核心命名空间(System、System.IO、System.Net):不要使用与核心命名空间冲突的类型名称
技术命名空间组:两个命名空间节点一致,属于同一单一技术的类型之间不能相互冲突io

 

5.类、结构和接口的名称
使用PascalCasing命名法
用形容词短语命名接口
不要给类名加前缀(eg:C)
考虑用基类名称做为派生类的结尾
接口名称加"I"
确保类和接口的名称区别仅在于前缀"I"class

泛型参数名称:
用描述性名称命名泛型参数,可用T做为参数名称
用T参数名称的前缀基础

常见类型名称:
属性:加Attribute
委托:委托名称中加后缀:EventHandler
使用委托的方法加后缀:Callback
不要加:Delegate
事件参数:加后缀:EventArgs
枚举:不要加enum或flag后缀
异常:加Exception后缀
字典:加Dictionary
集合:Collection
流:加后缀Stream
许可:加后缀 Permission

命名枚举:
PascalCasing命名法
单数类型的名称
不要Enum、Flag等后缀
不要前缀

 

6.类型成员名称
方法名称:谓词或谓词短语表示
属性名称:
名词或形容词、
不要用与Get方法匹配的属性、
用复数形式,而不是list后缀
用确定语气命名bool值,或者 Is 、Can 或 Has 前缀
用属性类型来命名

事件名称:
用谓词或谓词短语命名
用如今时或过去时表示事件前后概念,用ing或ed后缀,而不是Before或After
用EventHandler后缀来命名事件,用EventArgs 命名参数
事件中使用两个名为 object sender 和 ClickedEventArgs e 的参数

字段名称:
用PascalCasing命名
用名词、名词短语或形容词命名字段
不要使用前缀

 

7.命名参数
用camelCasing命名
用描述性参数名称
用基于参数含义而非参数类型的名称

命名运算符重载参数:
参数无心义: 二元运算符用left和right;一元运算符用value

 

8.命名资源用PascalCasing命名用描述性标识符而非简短标识符不要使用特定关键字只能使用字母、数字、下划线异常消息资源命名:ArgumentExceptionInvalidName

相关文章
相关标签/搜索