一、命名
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.用pascal規則來命名方法和類型,類名添加cls前綴。
Pascal規則是:第一個字母必須大寫,並且後面的併發連結詞的第一個字母均爲大寫,例如象GeneralManager、SmallDictionary、StringUtil都是合乎這種規則的類名。
public class clsTextBox
{
public void DataBind()
{
}
}
2.用camel規則來命名局部變量和方法的參數.並添加數據類型前綴。(前綴但參考附錄)
camel規則是:第一個子串外的所有子串的第一個字母大寫
string strUserName;
public AddUser(string strUserId, byte[] byPassword);
3.所有的成員變量前加前綴 m_
public class Database
{
public string m_strConnectionString;
}
4.接口的名稱加前綴 I.
interface ICompare
{
int compare();
}
5.自定義的屬性以Attribute結尾
public class AuthorAttribute : Attribute
{
}
6.自定義的異常以Exception結尾
public class AppException : Exception
{
}
7.方法的命名.一般將其命名爲動賓短語.
ShowDialog()
CreateFile()
GetPath()
8.代碼的縮進.要用Tab,而不要用space.
9.局部變量的名稱要有意義.不要用x,y,z等等.
string userName
10.所有的成員變量聲明在類的頂端,用一個換行把它和方法分開.
11.用有意義的名字命名namespace,如:產品名、公司名.
12.建議局部變量在最接近使用它時再聲明.
13.使用某個控件的值時,儘量命名局部變量.
14.把引用的系統的namespace和自定義或第三方的分開.
15.文件名要能反應類的內容,最好是和類同名,一個文件中一個類.
16.大括號"{"要新起一行.
public class AuthorAttribute : Attribute
{
}
17常量
全部大寫,單詞之間以 “_” 分隔
例如:USER_PASSWORD
二、編碼習慣.
1.用C#預定義的類名,而不要用別名.
string userName; 而不是 System.String userName;
int number; 而不是 System.Int32;
2.一行不要超過80個字符.
3.儘量不要手工更改機器生成的代碼,若必須更改,一定要改成和機器生成的代碼風格一樣.
4.關鍵的語句(包括聲明關鍵的變量)必須要寫註釋.
5.文字常量和數字常量不要硬編碼,應該用常量類或枚舉代替.
6.不要用goto系列語句.
7.不要聲明public和protected的成員變量,應用property.
8.不要聲明public的event,應用事件訪問器.
public class Source
{
private EventHandler m_NumberChangeEvent;
public event EventHandler NumberChangeEvent
{
add
{
m_NumberChangeEvent += value;
}
remove
{
m_NumberChangeEvent -= value;
}
}
}
9.類型轉換的使用規則.
Animal animal = new Dog();
Dog dog = animal as Dog;
if (dog != null)
{
}
10.生成和構建一個長的字符串時,一定要使用StringBuilder,而不用string.
11.始終使用"{ }"包含if/else下的語句,即使只有一條語句.
12.switch語句一定要有default來處理意外情況.
13.儘量不用使用this引用,除非是要調用類中的另一個Constructor.
public class Person
{
public Person(string name)
{
}
public Person() : this("Jim")
{
}
}
數據庫命名規則
1、數據庫對象命名規則
表: tb_e|r|b_<TableName> 首字母大寫
e—業務表中相對獨立的實體表(例如:課程資源表……)
r—業務中產生的關聯表(例如:選課表……)
b—系統中的基本表(例如:類型表、民族、地區……)
視圖: vw_<ViewName> 首字母大寫
存儲過程:sp_<SpName> 首字母大寫
觸發器: ti | tu | td_<TriggerName> 首字母大寫
函數過程:fn_<FunctionName> 首字母大寫
3、數據項命名規則
列名命名規則:首字母大寫
注:建議名稱部分用英文單詞或單詞簡寫
附錄:
數據類型
bool-b |
float-flt |
unit-ui |
byte-by |
int—i |
ulong-ulng |
char-ch |
long—lng |
ushort-usht |
decimal-dec |
sbyte-sby |
string-str |
double-dbl |
short-sht |
object-obj |
emun-emn |
struct-st |
|
控件命名:
Control type prefix Example
3D Panel pnl pnlGroup
ADO Data ado adoBiblio
Animated button ani aniMailBox
Button btn btnOK
Check box chk chkReadOnly
Combo box cbo cboEnglish
Dropdown list box ddl ddlUser
Command button cmd cmdExit
Common dialog dlg dlgFileOpen
Communications com comFax
Control (used within procedures when the specific type is unknown)
ctr ctrCurrent
Data dat datBiblio
Data-bound combo box dbcbo dbcboLanguage
Data-bound grid dbgrd dbgrdQueryResult
Data-bound list box dblst dblstJobType
Data combo dbc dbcAuthor
Data grid dgd dgdTitles
Data list dbl dblPublisher
Data repeater drp drpLocation
Date picker dtp dtpPublished
Directory list box dir dirSource
Drive list box drv drvTarget
File list box fil filSource
Flat scroll bar fsb fsbMove
Form frm frmEntry
Frame fra fraLanguage
Gauge gau gauStatus
Graph gra graRevenue
Grid grd grdPrices
Hierarchical flexgrid flex flexOrders
Horizontal scroll bar hsb hsbVolume
Image img imgIcon
Image combo imgcbo imgcboProduct
ImageList ils ilsAllIcons
Label lbl lblHelpMessage
Lightweight check box lwchk lwchkArchive
Lightweight combo box lwcbo lwcboGerman
Lightweight command button lwcmd lwcmdRemove
Lightweight frame lwfra lwfraSaveOptions
Lightweight horizontal scroll bar lwhsb lwhsbVolume
Lightweight list box lwlst lwlstCostCenters
Lightweight option button lwopt lwoptIncomeLevel
Lightweight text box lwtxt lwoptStreet
Lightweight vertical scroll bar lwvsb lwvsbYear
Line lin linVertical
List box lst lstPolicyCodes
ListView lvw lvwHeadings
MAPI message mpm mpmSentMessage
MAPI session mps mpsSession
MCI mci mciVideo
Menu mnu mnuFileOpen
Month view mvw mvwPeriod
MS Chart ch chSalesbyRegion
MS Flex grid msg msgClients
MS Tab mst mstFirst
OLE container ole oleWorksheet
Option button opt optGender
Picture box pic picVGA
Picture clip clp clpToolbar
ProgressBar prg prgLoadFile
Remote Data rd rdTitles
RichTextBox rtf rtfReport
Shape shp shpCircle
Slider sld sldScale
Spin spn spnPages
StatusBar sta staDateTime
SysInfo sys sysMonitor
TabStrip tab tabOptions
Text box txt txtLastName
Timer tmr tmrAlarm
Toolbar tlb tlbActions
TreeView tre treOrganization
UpDown upd updDirection
Vertical scroll bar vsb vsbRate