命名约定

我们在命名标识符时(包括参数,常量,变量),应使用单词的首字母大小写来区分一个标识符中的多个单词,如UserName.

  • PascalCasing

PascalCasing包含一到多个单词,每一个单词第一个字母大写,其余字母均小写。例如:HelloWorld、SetName等。

除了参数、变量、常量外,所有命名空间名称、类、函数、接口、属性、事件、枚举等名称的命名,使用 Pascal 风格。

  • camelCasing

camelCasing包含一到多个单词,第一个单词首字母小写,其余单词首字母大写。例如:name、productId等。

参数与变量的命名使用camelCasing.

  • SCREAMING_CAPS

SCREAMING_CAPS包含一到多个单词,每个单词的所有字母都大写,单词与单词之间用"_"连接,该风格目前在c#中只用于const常量。

如:public const string DEFAULT_PAGE = "default.aspx";

  • 私有变量的命名

Private 的私有变量使用下划线"_"+camelCasing的大小写规则,以便快速确认该变量的作用域。

如: private int _userId;

  • 首字母缩写词的大小写

首字母缩写词是由一个短语的首字母组成的,如Xml(ExtensibleMarkuLaguage),IO(Input and Output)。它和单词缩写是有区别的,单词缩写仅仅是把一个单词的长度变短。

  1. 把两个字母的首字母缩写词全部大写,除非它是camelCasing的第一个单词。

    using System.IO;

    public void StartIO(Stream ioStream)

  2. 由三个或以上的字母组成的首字母缩写词,只有第一个字母大写,如Xml,Html.除非首字母是camelCasing标识符的第一个单词。

    using System.Xml;

    public void ProcessXmlNode(XmlNode xmlNode)

  • 复合词的大小写

不要把复合词中的首字母大写。复合词要当成一个单词来处理。

如endpoint, callback,metadata,namespace等都是正确的写法

  • 在带单位的值的变量后加上"_camelCasing单位"

将单位加入标识符命名中,可以使使用者快速准确的知道传人数据的单位,减少错误的发生。

如public void CreateCache(int cacheSize)

传入的数据是bytes, KB, MB 还是GB?

改成public void CreateCache(int cacheSize_mb)

一目了然,并且会减少调用者传入错误数据的可能。

其他一些没有单位的函数参数以及带单位的版本。

  • 不要使用匈牙利命名法

匈牙利命名法是指用小写形式的数据类型缩写来作为变量名的前缀。如:strName,intCount。

这种命名法在C和C++时代很流行,可以帮助程序员记住自己的类型。

但在C#中需要禁用,除非你有足够的理由,因为:

  1. C#都是强类型的,现在的IDE(如Visual Studio)可以自动的检测出当前变量的类型以及类型错误

  2. 开发初期经常需要修改变量的类型,使用匈牙利命名法维护很困难。
  • 使用英语语序命名标识符

人在阅读代码时,能更快的理解符合其阅读习惯的命名。

如VerticalAlignment比AlignmentVertical能让人更快的知道该变量的含意。

自己总结的C#编码规范--1.命名约定篇的更多相关文章

  1. 自己总结的C#编码规范--4.注释篇

    注释 注释毫无疑问是让别人以最快速度了解你代码的最快途径,但写注释的目的绝不仅仅是"解释代码做了什么",更重要的尽量帮助代码阅读者对代码了解的和作者一样多. 当你写代码时,你脑海里 ...

  2. 自己总结的C#编码规范--6.格式篇

    格式 格式的统一使用可以使代码清晰.美观.方便阅读.为了不影响编码效率,在此只作如下规定: 长度 一个文件最好不要超过500行(除IDE自动生成的类). 一个文件必须只有一个命名空间,严禁将多个命名空 ...

  3. 这套C#编码规范写不错

    自己总结的C#编码规范--1.命名约定篇:http://www.cnblogs.com/luzhihua55/p/CodingConventions1.html 自己总结的C#编码规范--2.命名选择 ...

  4. python编码规范

    python编码规范 文件及目录规范 文件保存为 utf-8 格式. 程序首行必须为编码声明:# -*- coding:utf-8 -*- 文件名全部小写. 代码风格 空格 设置用空格符替换TAB符. ...

  5. C#编码规范 转 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html

    C#编码规范   1  规范目的 ……………………………………………………… 3 2  适用范围 ……………………………………………………… 3 3  代码注释 ………………………………………………… ...

  6. c#编码规范

    1  规范目的 --------------------- 3 2  适用范围 --------------------- 3 3  代码注释 --------------------- 3 3.1  ...

  7. Mod4-PHP编码规范

    loading... 归纳总结了能找到的一些编码规范,形成自己所需要的编码规范. 参考网址:1.2 一.文件格式 缩进使用四个空格,不使用制表符.左花括号不另起一行. if (1 == $x) { $ ...

  8. 资料推荐--Google Java编码规范

    之前已经推荐过Google的Java编码规范英文版了: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 虽然这篇文章的 ...

  9. Python + OpenCV2 系列:3 - python 字符串,类,编码规范

    首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的 ...

随机推荐

  1. SpringAOP面向切面编程

    Spring中三大核心思想之一AOP(面向切面编程): 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的 ...

  2. 【python】json中字典key不可为数值型

    遇到了一个很诡异的错误.写一个字典,存入json文件.之后读出判断是否存在key.结果惊奇的发现,同一个key居然存在两次. 原因:json会将数值key转换为unicode 结论:使用json时字典 ...

  3. 广工赛-hdu6469-树链压缩/二分

    比较复杂的一题.. 不管是二分答案还是直接做,都需要压缩树链 /* 给定n种怪物,每个怪物有属性a[i] 打死第i种怪物后,第i只怪物会分裂成a[i]个第i-1种怪 如果打死的是第1种,那么获得经验a ...

  4. hdu4370 dijkstra矩阵转单向边最短路矩阵+自环闭环

    /* 矩阵太神奇了Orz,网上的题解大多是spfa,不过我发想dijkstra也能做 把n*n的矩阵看成是单向边距离矩阵就行 */ #include<iostream> #include& ...

  5. python面向对象三大特性之继承

    继承是创建新类的方法,以下是几个概念 父类,基类,超类: 被继承的类 子类,派生类:继承而产出的类 单继承:继承一个父类 多继承:继承多个父类 继承: 什么是什么的关系 父类中没有的属性,在字类中出现 ...

  6. Python函数之内置函数

    截止导Python 3.6 目前内置函数有68个 以下是对这些内置函数的分类 一:作用域相关 以字典的形式返回作用域中的名字 locals # 返回本地作用域的所有名字 globals # 返回全局作 ...

  7. 目标检测算法之YOLOv3

    参考地址:https://blog.csdn.net/leviopku/article/details/82660381 YOLO v3结构图 DBL:卷积+BN+leaky relu,是v3的最小组 ...

  8. Hadoop数据分析平台项目实战(基于CDH版本集群部署与安装)

    1.Hadoop的主要应用场景: a.数据分析平台. b.推荐系统. c.业务系统的底层存储系统. d.业务监控系统. 2.开发环境:Linux集群(Centos64位)+Window开发模式(win ...

  9. Hyper-V 替换 vmwp

    要激活 Hyper-V 下的虚机 最简单的方法是用带证书的vmwp替换掉原来的 带证书的vmwp参见:http://bbs.pcbeta.com/viewthread-1408240-1-1.html ...

  10. sql select中加入常量列

    string sql="select a,b,'常量' as c from table" 注:单引号' ' 很重要,否则编译时会把其看成查询参数,从而提示参数未指定错误