C#简单命名指南

一个好的名字能够让你的程序更加好懂,别人一看到这个名字,就能够猜到你在做什么。大量好的名字离不开好的命名规范,而一个好的命名规范要做到两点:

l  合理。即容易被大家接受和使用。从这个意义上来说,好的命名规范不应该太长,它应该让你花上10分钟就能看完,写过几段代码就能熟悉。

l 风格一致。即前后一致,例外的情况少。

符合以上两点的命名规范就是好的,虽然它们具体的规则可能不同。有的时候,命名规范体现了编程思想,比如:对于接口,在.NET中,一般要求以“I”开头,在Java中没有这个要求,原因是Java认为接口和抽象类往往可以转化,比如:在项目初期,可能定义的是接口,而在后面,可能把它改成抽象类,如果名称一致,就避免了名称的改动。

另外,不同的命名规范也体现了程序发展历程。比如:匈牙利命名法要求类型前缀,故在C++、VB、PB一般都会大量出现类型前缀,像intAmount, strName等。而现在一般没有这个要求,原因是:1)有些类型可能会做修改,比如Int16变成Int32。另外对于一些动态语言(Python、JavaScript)来说,其类型是变化的,编译时无法确定;2)现在的开发环境更加的友好,即使在开发的时候,你也很容易知道变量的类型(只要鼠标移上去)。

本文的命名规范主要基于微软的标准,另外加上实际开发的一些具体经验。它还在不断的维护和完善,你可以针对不同项目的要求,做相应的调整。

命名样式

样式分类


名称<?XML:NAMESPACE PREFIX = O />


解释


适用环境


例子


Pascal 大小写


首字母和后面的每个单词的首字母都大写;其他字母小写

 


BackColor


Camel 大小写


首字母小写,而后面的每个单词的首字母大写;其他字母小写

 


backColor


大写


所有字母都大写


l          缩写。

l          少于等于2个字符


System.IO

System.Web.UI

样式的选择


标识符


命名格式


例子


备注


参数、局部变量


Camel


public int GetTypeID(string typeName)

{  int typeID; …  }

 


Private、Protected的实例字段


Camel


private string redValue;

protected bool isOk;

 


界面控件


Camel


private Label lblAlarm;

 


缩写


大写


namespace System.IO

{  …  }


缩写必须是被普遍接受、众所周知的缩写。


除上面的标识符外


Pascal


public System.Drawing.Color BackColor

{  …  }

 

原则和习惯
首要原则

有意义的,描述性的词语来命名。能够一眼看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了

1. 除约定俗成的,别用缩写。用name, address, salary等代替 nam, addr, sal

2. 除用于循环,别使用单个字母的变量象i, n, x 等. 而要使用 index, temp等。
for ( int i = 0; i < count; i++ ){ ...}
其他习惯
l除了界面控件外,不要使用类型前缀。比如:使用名称amount,而不是 intAmount;

l类:使用名词、名词短语命名。比如:public class FileStream;

l方法:使用动词、动词短语开始。比如:CreateUser(), RemoveAt()等;

l接口:以 I 开始,后面加上名词、名词短语、形容词命名。比如:IDisposable;

l常量:所有单词大写,多个单词之间用 "_" 隔开。public const string PAGE_TITLE = "Welcome";

l命名空间:

1.基本格式:

CompanyName/ProjectName.TechnologyName[.Feature][.Design]

a)CompanyName/ProjectName:公司名、项目名称或产品名称;

b)TechnologyName:稳定的、公认的技术名称或架构层次名称;

c)[.Feature][.Design]:可选的功能与设计;

例如:

//微软公司的Web开发中的UI中的Design

namespace Microsoft.Web.UI.Design

//西门子报价项目中业务逻辑层中的项目管理

namespace SiemensQuotation.BusinessRules.ProjectManagement  

2.几个规则

a)嵌套的命名空间应当有依赖关系。例如:System.Web.UI.Design 中的类依赖于 System.Web.UI 中的类,而不能相反。

b)命名空间和类不能使用同样的名字。例如,命名空间Debug下最好不要又一个类名为Debug。

c)如果公司名、项目名称或产品名称太长的话,可以用缩写(且全部大写)。

控件命名控件的名称中需要加上前缀,之所以这样做是为了区分界面的控件和普通的对象,由于界面修改往往非常频繁,区分开来能使你更快速的找到控件,从而修改界面。举一个例子:

界面有10个TextBox、10个Label。一个TextBox对应一个Label,为了完成读写,你至少要有20条语句来从控件进行取、赋值操作,如果有前缀的话,输入this.txt,你就几乎马上能找到这个控件。反之,如果没有前缀,由于窗口或页面对象拥有大量的属性和变量(>100个),你将花费大量时间来查找。另外一个TextBox对应一个Label(一个代表值,一个代表名称),它们往往指同一样事物,如果有前缀,就很容易区分这两个控件。


控件


前缀


备注


Label


lbl


比如:lblName


TextBox


txt

 


Button     


btn

 


CheckBox 


chk

 


RadioButton 


rdo

 


CheckBoxList  


chklst

 


RadioButtonList 


rdolst

 


ListBox     


lst

 


DropDownList 


ddl

 


DataGrid 


dg

 


DataList     


dl

 


Image 


img

 


Table   


tbl

 


Panel        


pnl

 


LinkButton 


lnkbtn

 


ImageButton  

时间: 2024-10-02 21:29:45

C#简单命名指南的相关文章

PHP中trim()函数简单使用指南

 string trim ( string $str [, string $charlist ] ) - 去除字符串首尾处的空白字符(或者其他字符) trim()函数当第二个参数为空时,默认去掉空格.制表符.换行符.回车符.垂直制表符等,当加入第二个参数时    代码如下: 1) trim(' "string"', '"sg'); // 最终输出:"strin 2) trim(' "string" ', '"sg'); // 最终输出:

node+express+jade制作简单网站指南_node.js

1.建立工程文件夹:my_jade 2.下载express和jade包到本地.我个人不喜欢下载成全局的,我喜欢下到工程文件夹中去. 3.建立相关的文件夹和文件. index.js: style.css gys.jade代码: index.jade: layout.jade app.js 运行app.js:node app.js; 在浏览器中预览: 在看一个不使用页面布局的例子: 修改index.js 修改app.js 运行app.js在浏览器中预览: 单击提交 会触发ajax. .本文就先到这里

PHP中trim()函数简单使用指南_php技巧

string trim ( string $str [, string $charlist ] ) - 去除字符串首尾处的空白字符(或者其他字符) trim()函数当第二个参数为空时,默认去掉空格.制表符.换行符.回车符.垂直制表符等,当加入第二个参数时 复制代码 代码如下: 1) trim('   \"string\"', '\"sg'); // 最终输出:\"strin 2) trim('   \"string\"   ', '\"

Python中的defaultdict模块和namedtuple模块的简单入门指南_python

在Python中有一些内置的数据类型,比如int, str, list, tuple, dict等.Python的collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:namedtuple, defaultdict, deque, Counter, OrderedDict等,其中defaultdict和namedtuple是两个很实用的扩展类型.defaultdict继承自dict,namedtuple继承自tuple.一.defaultdict  1. 简介 在使用P

FleaPHP 开发指南 - 4. 命名规范和目录结构

规范|开发指南 FleaPHP 的命名规则和目录结构初看上去比较复杂,但习惯以后,你会发现这种命名规则带来许多好处.因此像 Zend Framework 也是采用同样的做法. 当然,FleaPHP 对于应用程序的命名规则和目录结构没有强制性要求.只不过采用一致的命名规则和目录结构,可以方便对应用程序维护.同时 FleaPHP 应用程序开发者之间也可以更容易的进行协作. 全局函数的命名规则 全局函数的命名规则是用"_"分隔全小写的单词.例如 get_cache().echo_h().同时

C#编码,书写规范

C#编码规范C#编程<>规范<>Version 2.0目录第一章 概述<>规范<>制定原则1 方便代码的交流和维护.2 不影响编码的效率,不与大众习惯冲突.3 使代码更美观,阅读更方便.4 使代码的逻辑更清晰,更易于理解.术语定义Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写.可以对三字符或更多字符的标识符使用Pascal 大小写.例如:BackColorCamel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写.例如:

Oracle数据安全解决方案(2)——Oracle Database Vault

原文地址:http://download.oracle.com/docs/cd/B28359_01/server.111/b31222/dvintro.htm Oracle Database Vault 本篇包含如下内容: ·         什么是Oracle Database Vault? ·         Oracle Database Vault组成部分 ·         Oracle Database Vault遵循哪些规范 ·         Database Vault应对哪些

《DBA修炼之道:数据库管理员的第一本书》——3.2节数据模型的组件

3.2 数据模型的组件 数据模型由许多不同的组件(对真实世界中事物的抽象)构建而成.最简单的数据模型由实体和关系构成.在数据模型发展的同时,加入了更多的细节,复杂度也随之增加.接下来研究数据模型的各种不同组件以及用于数据建模的术语.3.2.1 实体 从最基本的层面来说,实体是存在且能够描述的事物.它可以是人.地方.事情.概念或有关企业支撑某些事实的事件.例如,STUDENT.INSTRUCTOR和COURSE都是学院或大学必须了解来完成业务的具体实体. 实体是人.地方.事情.概念或事件. 实体命

CSS 和 CSS 预处理器简介

CSS 和 CSS 预处理器简介 我已经想了很多关于自己编写的CSS,其当前的状态和这么多年来是如何改变的. 我通常在开始做一个新项目的时候都会使用自己的框架Motherplate.它使用了Sass和Compass.大部分的类名最初都没有基于任何其他的框架.也不是故意这么做的. 现在,我认识的大多数开发人员都在使用Bootstrap.如果一个朋友要启动一个新项目,得到一些应用程序上的帮助,我通常会建议他们使用Bootstrap框架.这样做是有一定道理的,特别是他们的原型和版本都还是0的时候,使用