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

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

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

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

避免特定于语言的名称:
选择有意义的名称,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):不要使用与核心命名空间冲突的类型名称
技术命名空间组:两个命名空间节点一致,属于同一单一技术的类型之间不能相互冲突

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

泛型参数名称:
用描述性名称命名泛型参数,可用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

C# 接口命名规范的更多相关文章

  1. JAVA 增删改查接口命名规范(dao层与 service 层

    开发时,有很多规范,这里写的是命名规范. Dao 接口命名   insert batchInsert selectOne selectById count selectList update dele ...

  2. RESTFUL风格的接口命名规范

    1.首先restfulf风格的api是基于资源的,url命名用来定位资源,而不是表示动作,动作通过请求方式进行表示. 2.URL中应该单复数区分,推荐的实践是永远只用复数.比如GET /api/use ...

  3. java开发命名规范总结

    一 包名的书写规范 (Package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性.包名全部为小写字母,且具有实际的区分意义. 1.1 一般要求1.选择有意义 ...

  4. Go语言命名规范

    一.变量命名规范 变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写.例子: var apiClient var URLString 二.常量命名 ...

  5. Java语言基本语法(一)————关键字&标识符(Java语言标识符命名规范&Java语言的包名、类名、接口名、变量名、函数名、常量名命名规则 )

    一.关键字 关键字的定义和特点 定义:被Java语言赋予特殊含义,用做专门用途的字符串(单词). 特点:关键字中所有字母均为小写 下面列举一些常用的关键字. 用于定义数据类型的关键字:byte.sho ...

  6. Java命名规范

    驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...

  7. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  8. Android 命名规范 (提高代码可以读性)

    android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...

  9. iOS开发(OC)中的命名规范

    开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...

随机推荐

  1. L2-006. 树的遍历(不建树)

    L2-006. 树的遍历   给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(<=30),是二叉树中结点 ...

  2. MVC系统学习4—ModelMetaData

    在Mvc R2中,新引入了一些扩展方法,如后面带一个for的方法,这些扩展方法会根据Model的属性自定生成相应的Html元素,如Html.EditFor(Model=>Model.IsAppr ...

  3. Java AOP 获取HttpSevletRequest、HttpSevletResponse、HttpSession对象

    ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) ((ServletRequestAttributes) ...

  4. Ubuntu查看隐藏文件夹的方法

    比如要查看当前用户目录下的隐藏文件夹 进入/home/jim目录,使用快捷键Ctrl+H,即可显示隐藏文件夹,如果要关闭,再次按Ctrl+H即可. GUI操作如下所示: 进入文件夹,左上角->查 ...

  5. 未来 Web 设计的 7 大趋势

    1.手势代替点击 还记得曾经是怎样滚动网页的吗?将鼠标移到屏幕的右边缘,然后拖动古代称为"滚动栏"的玩意儿: 略微专业点的可能会使用鼠标滚轮,光标键或触控板,这已经率先于大多数的用 ...

  6. 在Java中按字节获得字符串长度的三种方法

    转载:http://www.blogjava.net/nokiaguy/archive/2010/04/11/317982.html 由于Java是基于Unicode编码的,因此,一个汉字的长度为1, ...

  7. 智能家居APP开发

    智能家居APP开发 APP开发技术qq交流群:347072638 前言,随着智能硬件设备的流行,智能家居開始红火,智能家居就是家用电器的智能化.包含智能锁,灯,空调,灯,音箱等等,移动设备通过WIFI ...

  8. geek青年的状态机,查表,纯C语言实现

    geek青年的状态机,查表,纯C语言实现 1. 问题的提出.抽象 建一,不止是他,不少人跟我讨论过这种问题:怎样才干保证在需求变更.扩充的情况下.程序的主体部分不动呢? 这是一个很深刻和艰难的问题.在 ...

  9. LeetCode 706. Design HashMap (设计哈希映射)

    题目标签:HashMap 题目让我们设计一个 hashmap, 有put, get, remove 功能. 建立一个 int array, index 是key, 值是 value,具体看code. ...

  10. 汉澳Sinox2014X64server高级桌面服务器版操作系统公布

    汉澳Sinox2014X64server高级桌面服务器版操作系统公布   当你在现代城市夜空中看到一道闪电.屏幕中央闪过几个图形,转眼间变成美轮美奂的紫色空中天国,说明你来到了汉澳sinox2014世 ...