1版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:
(1)版权信息。
(2)文件名称,标识符,摘要。
(3)当前版本号,作者/修改者,完成日期。
(4)版本历史信息。
/*Copyright (C) 2007 ,公司名称 * All Rights Reserved * 文件名称:filename.cs * 摘 要:摘要内容 * * 当前版本:1.1 * 作 者:sucsy * 完成日期:2007年3月15日 * * 取代版本:1.0 * 原作者 :原作者的姓名 * 完成日期:2007年3月14日 */
|
例1-1
2 注释规范
#region 系统方法
#region 页面加载
protected void Page_Load(object sender, EventArgs e)
{
RegCommonDialog();//通用对话框注册
}
#endregion
#region 按钮1单击事件
//按钮1单击事件
protected void Button1_Click(object sender, EventArgs e)
{
ShowMessageBox("Add", "add(2,9)");
}
#endregion
#endregion
#region 自定义方法
#region 加法方法。
// 摘要:
// 加法方法。
// /*=======================================================================================
更新历史
项目名称 更新日期 责任人 更新内容
****系统 2007.03.10 sucsy 新建 =======================================================================================*/ /// <summary>
/// 加法方法
/// </summary>
/// <param name="a">第一个参数</param>
/// <param name="b">第二个参数</param>
/// <returns>a+bd的值</returns>
[Ajax.AjaxMethod()]
public string AddMethod(int a, int b)
{
//@sucsy于2007年3月7日晚19:05修改
//原因是:系统错误只在系统研发时使用
//原代码:ErrMsg = getMsgByNumber(_ErrNumber);
//修改成:
ErrMsg = "系统忙或您正在执行非法的操作";
}
#endregion
#endregion
3 程序的版式
2.2 代码行
【规则2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。
【规则2-2-2】if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。
示例2-2(a)为风格良好的代码行,示例2-2(b)为风格不良的代码行。
【建议2-2-1】尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如
int width = 10; // 定义并初绐化width
int height = 10; // 定义并初绐化height
int depth = 10; // 定义并初绐化depth
5.2.3代码行内的空格
【规则2-3-1】关键字之后要留空格。象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。象if、for、while 等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。
【规则2-3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
【规则2-3-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。
【规则2-3-4】‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update)。
【规则2-3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。
【规则2-3-6】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。
【规则2-3-7】象“[]”、“.”、“->”这类操作符前后不加空格。
【建议2-3-1】对于表达式比较长的for 语句和if 语句,为了紧凑起见可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d))
5.2.4对齐
【规则2-4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
【规则2-4-2】{ }之内的代码块在‘{’右边数格处左对齐。
5.2.5长行拆分
【规则2-5-1】代码行最大长度宜控制在70 至80 个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。
【规则2-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
5.2.6修饰符的位置
修饰符 * 和 & 应该靠近数据类型还是该靠近变量名,是个有争议的活题。若将修饰符 * 靠近数据类型,例如:int* x; 从语义上讲此写法比较直观,即x是int 类型的指针。
上述写法的弊端是容易引起误解,例如:int* x, y; 此处y 容易被误解为指针变量。虽然将x 和y 分行定义可以避免误解,但并不是人人都愿意这样做。
【规则2-6-1】应当将修饰符 * 和 & 紧靠变量名
例如:
char *name;
int *x, y; // 此处y 不会被误解为指针
3命名规则
【规则3-1】类名和函数名用大写字母开头的单词组合而成。
例如:
class Node; // 类名
class LeafNode; // 类名
void Draw(void); // 函数名
void SetValue(int value); // 函数名
【规则3-2】变量和参数用小写字母开头的单词组合而成。
组合规则:
类型名称_所属板块或对象_板块的操作或对象的属性
例如:
String str_ExamPage_Title=””; //变量名
str_ExamPage_Title = txt_ExamPage_Title.Text;//文本框名
str_ExamPage_Head_Content //多级对象下的属性需要将每一级都写上
Type | Prefix | Example |
Array | arr | arrShoppingList |
Boolean | bln | blnIsPostBack |
Byte | byt | bytPixelValue |
Char | chr | chrDelimiter |
DateTime | dtm | dtmStartDate |
Decimal | dec | decAverageHeight |
Double | dbl | dblSizeofUniverse |
Integer | int | intRowCounter |
Long | lng | lngBillGatesIncome |
Object | obj | objReturnValue |
Short | shr | shrAverage |
Single | sng | sngMaximum |
String | str | strFirstName |
WebControls
Type | Prefix | Example |
AdRotator | adrt | adrtTopAd |
Button | btn | btnSubmit |
Calendar | cal | calMettingDates |
CheckBox | chk | chkBlue |
CheckBoxList | chkl | chklFavColors |
CompareValidator | valc | valcValidAge |
CustomValidator | valx | valxDBCheck |
DataGrid、Gridview | grd | grdTitles |
DataList | dlst | dlstTitles |
DropDownList | drp | drpCountries |
HyperLink | lnk | lnkDetails |
Image | img | imgAuntBetty |
ImageButton | ibtn | ibtnSubmit |
Label | lbl | lblResults |
LinkButton | lbtn | lbtnSubmit |
ListBox | lst | lstCountries |
Panel | pnl | pnlForm2 |
PlaceHolder | plh | plhFormContents |
RadioButton | rad | radFemale |
RadioButtonList | radl | radlGender |
RangeValidator | valg | valgAge |
RegularExpression | vale | valeEmail_Validator |
Repeater | rpt | rptQueryResults |
RequiredFieldValidator | valr | valrFirstName |
Table | tbl | tblCountryCodes |
TableCell | tblc | tblcGermany |
TableRow | tblr | tblrCountry |
TextBox | txt | txtFirstName |
ValidationSummary | vals | valsFormErrors |
XML | xmlc | xmlcTransformResults |
ADO.NET
Type | Prefix | Example |
Connection | con | conNorthwind |
Command | cmd | cmdReturnProducts |
Parameter | parm | parmProductID |
DataAdapter | da | daProducts |
DataReader | dr | drProducts |
DataSet | ds | dsNorthWind |
DataTable | dtbl | dtblProduct |
DataRow | drow | drowRow98 |
DataColumn | dcol | dcolProductID |
DataRelation | drel | drelMasterDetail |
DataView | dvw | dvwFilteredProducts |