看看C#的编码规范对你有好处:1. 目的为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。2. 范围适用于企业所有基于.NET平台的软件开发工作。3. 规范内容3.1. 代码格式u 所有的缩进为4个空格,使用VS.NET的默认设置。
u 在代码中垂直对齐左括号和右括号。if(x==0) { Response.Write("用户编号必须输入!"); } 不允许以下情况:if(x==0) { Response.Write("用户编号必须输入!"); }或者:if(x==0){ Response.Write("用户编号必须输入!");} u 为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏u 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。u 每一行上放置的语句避免超过一条。u 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。例: int j = i + k;而不应写为 int j=i+k;u 将大的复杂代码节分为较小的、易于理解的模块。u 编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。u 将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT FirstName, LastName FROM Customers WHERE State = 'WA' 3.2. 注释(Comment)规范注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释3.2.1. 模块(类)注释规范模块开始必须以以下形式书写模块注释:///<summary> ///模块编号:<模块编号,可以引用系统设计中的模块编号> ///作用:<对此类的描述,可以引用系统设计中的描述> ///作者:作者中文名 ///编写日期:<模块创建日期,格式:YYYY-MM-DD> ///</summary>如果模块有修改,则每次修改必须添加以下注释: ///<summary> ///Log编号:<Log编号,从1开始一次增加> ///修改描述:<对此修改的描述> ///作者:修改者中文名 ///修改日期:<模块修改日期,格式:YYYY-MM-DD> ///</summary> 3.2.2. 类属性注释规范在类的属性必须以以下格式编写属性注释: /// <summary> ///属性说明/// </summary>3.2.3. 方法注释规范在类的方法声明前必须以以下格式编写注释 /// <summary> /// 说明:<对该方法的说明> /// </summary> /// <param name="<参数名称>"><参数说明></param> /// <returns> ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义> /// </returns> 3.2.4. 代码间注释规范代码间注释分为单行注释和多行注释: 单行注释://<单行注释> 多行注释: /*多行注释1 多行注释2 多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。 3.3. 变量(Variable)命名规范3.3.1. 程序文件(*.cs)中的变量命名规则 程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。 1. 类模块级的变量请用“m_”作前缀public class hello{ private string m_Name; private DateTime m_Date; }2. 类的属性所对应的变量,采用属性名前加“m_”前缀的形式public class hello{ private string m_Name; public string Name { get{ return m_Name;}}}3. 过程级的变量不使用前缀public class hello{ void say() { string SayWord;}}4. 过程的参数使用“p_”作为参数 public class hello { void say(string p_SayWord) { } } 补充说明: 针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如:ee。Try{ //your code try{//code}catch(Exception ee){//your code}}catch(Exception e){ //your code}补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例例:try{ //your code}catch( Exception ){} 5. 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.6. 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。7. 在变量名中使用互补对,如 min/max、begin/end 和 open/close。8. 不要使用原义数字或原义字符串,如 For i = 1 To 7。而是使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。3.3.2. 控件命名规则 控件命名=Web控件缩写前缀 + “_” +变量名 控件
缩写
Label
lbl
TextBox
txt
CheckBox
chk
Button
cmd
ListBox
lst
DropDownList
drp
等等
3.4. 常量命名规范常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。例: private const bool WEB_ENABLEPAGECACHE_DEFAULT = true; private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600; private const bool WEB_ENABLESSL_DEFAULT = false; 注:变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。 3.5. 类(Class)命名规范1. 名字应该能够标识事物的特性。2. 名字尽量不使用缩写,除非它是众所周知的。3. 名字可以有两个或三个单词组成,但通常不应多于三个。4. 在名字中,所有单词第一个字母大写。 例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。5. 使用名词或名词短语命名类。 6. 少用缩写。 7. 不要使用下划线字符 (_)。 例:public class FileStream
public class Button
public class String
3.6. 接口(Interface)命名规范 和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀 例: interface IDBCommand; interface IButton; 3.7. 方法(Method)命名规范 和类命名规范相同。3.8. 命名空间(NameSpace)命名规范 和类命名规范相同。
u 在代码中垂直对齐左括号和右括号。if(x==0) { Response.Write("用户编号必须输入!"); } 不允许以下情况:if(x==0) { Response.Write("用户编号必须输入!"); }或者:if(x==0){ Response.Write("用户编号必须输入!");} u 为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏u 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。u 每一行上放置的语句避免超过一条。u 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。例: int j = i + k;而不应写为 int j=i+k;u 将大的复杂代码节分为较小的、易于理解的模块。u 编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。u 将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT FirstName, LastName FROM Customers WHERE State = 'WA' 3.2. 注释(Comment)规范注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释3.2.1. 模块(类)注释规范模块开始必须以以下形式书写模块注释:///<summary> ///模块编号:<模块编号,可以引用系统设计中的模块编号> ///作用:<对此类的描述,可以引用系统设计中的描述> ///作者:作者中文名 ///编写日期:<模块创建日期,格式:YYYY-MM-DD> ///</summary>如果模块有修改,则每次修改必须添加以下注释: ///<summary> ///Log编号:<Log编号,从1开始一次增加> ///修改描述:<对此修改的描述> ///作者:修改者中文名 ///修改日期:<模块修改日期,格式:YYYY-MM-DD> ///</summary> 3.2.2. 类属性注释规范在类的属性必须以以下格式编写属性注释: /// <summary> ///属性说明/// </summary>3.2.3. 方法注释规范在类的方法声明前必须以以下格式编写注释 /// <summary> /// 说明:<对该方法的说明> /// </summary> /// <param name="<参数名称>"><参数说明></param> /// <returns> ///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义> /// </returns> 3.2.4. 代码间注释规范代码间注释分为单行注释和多行注释: 单行注释://<单行注释> 多行注释: /*多行注释1 多行注释2 多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。 3.3. 变量(Variable)命名规范3.3.1. 程序文件(*.cs)中的变量命名规则 程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。 1. 类模块级的变量请用“m_”作前缀public class hello{ private string m_Name; private DateTime m_Date; }2. 类的属性所对应的变量,采用属性名前加“m_”前缀的形式public class hello{ private string m_Name; public string Name { get{ return m_Name;}}}3. 过程级的变量不使用前缀public class hello{ void say() { string SayWord;}}4. 过程的参数使用“p_”作为参数 public class hello { void say(string p_SayWord) { } } 补充说明: 针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如:ee。Try{ //your code try{//code}catch(Exception ee){//your code}}catch(Exception e){ //your code}补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例例:try{ //your code}catch( Exception ){} 5. 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.6. 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。7. 在变量名中使用互补对,如 min/max、begin/end 和 open/close。8. 不要使用原义数字或原义字符串,如 For i = 1 To 7。而是使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。3.3.2. 控件命名规则 控件命名=Web控件缩写前缀 + “_” +变量名 控件
缩写
Label
lbl
TextBox
txt
CheckBox
chk
Button
cmd
ListBox
lst
DropDownList
drp
等等
3.4. 常量命名规范常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。例: private const bool WEB_ENABLEPAGECACHE_DEFAULT = true; private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600; private const bool WEB_ENABLESSL_DEFAULT = false; 注:变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。 3.5. 类(Class)命名规范1. 名字应该能够标识事物的特性。2. 名字尽量不使用缩写,除非它是众所周知的。3. 名字可以有两个或三个单词组成,但通常不应多于三个。4. 在名字中,所有单词第一个字母大写。 例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。5. 使用名词或名词短语命名类。 6. 少用缩写。 7. 不要使用下划线字符 (_)。 例:public class FileStream
public class Button
public class String
3.6. 接口(Interface)命名规范 和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀 例: interface IDBCommand; interface IButton; 3.7. 方法(Method)命名规范 和类命名规范相同。3.8. 命名空间(NameSpace)命名规范 和类命名规范相同。
解决方案 »
- winform程序切换输入法出现卡死现象,求大神们帮忙~~
- 难题:用winform中的WebBrowser控件加载网页后,如何得到网页的打印页数?
- Visual Studio 2008与2005版C#在数据库操作上主要有哪些区别?
- 请问那种在线咨询的网页对话框到服务器端该怎么操作啊?
- 关于程序员的问题
- c#编程环境的解决方案资源管理器的"引用"是指什么?与"引用类型"的"引用"有什么不同?
- 从字符串转换日期和/或时间时 转换失败。
- 非常不错的MD5加密方法
- 做过itextsharp的请进(分不够,可以再加)
- 如何才能强行执行UpdateCommand进行更新数据库?
- 请问如何建 一个文件夹
- 我机器出恶意代码??
private string _sNameid;
public string sNameid
{
get
{
return _sNameid;
}
set
{
_sNameid = value;
}
}