自己总结的C#编码规范--1.命名约定篇

最近在为公司编写c#编码规范,以前对这方面研究不多,只是觉得代码能够出自己的意思就可以了。

我参考了以下资料

  1. C# Coding Conventions
  2. NET设计规范约定惯用法与模式(第2版)
  3. 编写可读性代码的艺术
  4. 重构—改善既有代码的设计
  5. 高效程序员的45个习惯
  6. 代码整洁之道

发现其实真要写好一个代码规范是一件非常难的事情,这取决于规范制定者的经验,团队成员的水平,业务的具体需求,项目的复杂度,项目的进度,企业的文化氛围等等。

而且每次提笔要写的时候,总是有很多很多的想法想写进去,可是作为一个规范又不可能太长,要精简。

所以自己写了两天目前只写出来了命名约定这一部分,先和大家分享一下,里面对于为什么要选择这个约定也有一定的解释,希望大家可以一起探讨下我选的这些规范是否合理,如果不合理的地方很高兴能和大家一起修改。

后续几天我会陆续的把

二、命名的选择

三、注释的编写

写好,同时也希望大家帮我想想编码规范还有哪些方面需要覆盖。

命名约定

我们在命名标识符时(包括参数,常量,变量),应使用单词的首字母大小写来区分一个标识符中的多个单词,如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.命名约定篇

时间: 2024-12-23 21:48:57

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

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

格式 格式的统一使用可以使代码清晰.美观.方便阅读.为了不影响编码效率,在此只作如下规定: 长度 一个文件最好不要超过500行(除IDE自动生成的类). 一个文件必须只有一个命名空间,严禁将多个命名空间放在一个文件里. 一个文件最好只有一个类. 如果超过500行,考虑拆分类或者使用Partial 类将类按照功能拆分. 一个方法的代码最好不要超过50行,如果超过考虑将里面的逻辑封装成函数. 空格.空行 空行的使用以使代码清晰为为基本原则.空行影响程序的运行,但可以使代码看起来清晰,增加可读性,因此

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

注释 注释毫无疑问是让别人以最快速度了解你代码的最快途径,但写注释的目的绝不仅仅是"解释代码做了什么",更重要的尽量帮助代码阅读者对代码了解的和作者一样多. 当你写代码时,你脑海里会有很多有价值的信息,但当其他人读你代码时,这些信息已经丢失,他们所见到的只是眼前代码. 注释约定 如果IDE提供注释格式,则尽量使用IDE提供的格式,否则使用"//"来注释.类.属性和方法的注释在Visual Studio中都使用输入"///"自动生成的格式. 类注释

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

--原文地址:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架,插件,或其他可执行目标,里面的命名编写和规范不同于一般应用程序的开发.因为你开发出来东西是给开发者用的看的,并且他们不熟悉你的编程接口.这个时候API的命名约定就派上用场了,因为它使你的写

说说Python编码规范

前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来.         这么久没写了,再次拿起键盘,想想,发表些什么呢,想起上次公司的代码评审委员会下周其中一个议题是关于Python编码规范的整理,那就趁热打铁,整理一份关于Python编码规范的文章,也为那些写Python的人,提供一些编码注意的一些事项或者说是参考吧. 编码规范的作用         规范故明思义,就是通过不断的总结,吸取好的点,从而形成的一

C#编码规范-转

转自:原文 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html 1 规范目的 ……………………………………………………… 3 2 适用范围 ……………………………………………………… 3 3 代码注释 ……………………………………………………… 3 3.1 代码注释约定............................................ 3 3.2 模块头部注释规范.................

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

首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的进行一下总结. 1. 字符串 连接 字符串数组 转义字符 Excellent Reference Link :http://www.w3cschool.cc/python/python-strings.html 字符串 ● 使用单引号(')你可以用单引号指示字符串,就如同'Quote me on this'这

自己总结的C#编码规范--前言&amp;目录

最近在为公司编写c#编码规范,以前对这方面研究不多,只是觉得代码能够出自己的意思就可以了. 我参考了以下资料 C# Coding Conventions NET设计规范约定惯用法与模式(第2版) 编写可读性代码的艺术 重构—改善既有代码的设计 高效程序员的45个习惯 代码整洁之道 发现其实真要写好一个代码规范是一件非常难的事情,这取决于规范制定者的经验,团队成员的水平,业务的具体需求,项目的复杂度,项目的进度,企业的文化氛围等等. 而且每次提笔要写的时候,总是有很多很多的想法想写进去,可是作为一

编码规范系列(二):Eclipse Checkstyle配置

http://chenzhou123520.iteye.com/blog/1627618 上一篇介绍了<编码规范系列(一):Eclipse Code Templates设置>,这篇主要介绍Eclipse中Checkstyle的配置.关于Checkstyle,引用百度百科的介绍如下:CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来.CheckStyle

最全面的 Android 编码规范指南

最全面的 Android 编码规范指南 本文word文档下载地址:http://pan.baidu.com/s/1bXT75O 1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 1.1 术语说明 在本文档中,除非另有说明: 术语 class 可表示一个普通类,枚举类,接口或是annotation类型(@interface) 术语 comment 只用来指代实现的注释(im