C#編碼標準--命名約定和風格
2024-07-21 02:19:42
供稿:網(wǎng)友
命名約定和風格
1. 使用pascal的命名規(guī)范命名類型和方法的名字。
public class someclass
{
public somemethod(){}
}
2. 使用camel命名規(guī)范命名局部變量和方法的參數(shù)。
int number;
void mymethod(int somenumber)
{}
3. 在命名接口的時候使用i作為前綴。
interface imyinterface
{...}
4. 私有成員變量使用m_作為前綴。
public class someclass
{
private int m_number;
}
5. 自定義的屬性類使用attribute作為其后綴。
6. 自定義的異常類使用exception作為其后綴。
7. 在命名方法的時候使用動賓結(jié)構(gòu)的短語,比如:showdialog()。
8. 有返回值的方法應該有一個可以描述其返回值的名字,比如:getobjectstate()。
9. 使用有意義的變量名稱。
10. 使用c#的預定義的類型而不使用system命名空間中其別名來申明變量。
使用object 而不是 object
使用string 而不是 string
使用 int 而不是 int32
11. 通常情況下,類型使用大寫字母。當處理.net的類型的時候使用type作為其后綴。
//正確的是:
public class linkedlist<k,t>
{…}
//避免使用:
public class linkedlist<keytype,datatype>
{…}
12. 使用有意義的命名空間,比如使用公司的名稱以及產(chǎn)品的名稱。
13. 避免使用完全限定名。而使用using語句替換之。
14. 避免將using語句寫在命名空間的內(nèi)部。
15. 將所有的框架定義的命名空間為一組,自定義的和第三方的命名空間放在另一組。
using system;
using system.collections.
using system.componentmodel;
using system.data;
using mycompany.
using mycontrols;
16. 使用委托的引用替換顯式的委托實例。
delegate void somedelegate();
public void somemethod()
{…}
somedelegate somedelegate = somemethod;
17. 保持嚴格的縮進風格。
a. 使用3個空格縮進
b. 不要使用tabs或者其他不標準的縮進,比如1、2、4個空格。
18. 在編寫注釋的時候注釋的縮進和編碼的縮進必須是相同級別的。
19. 所有的注釋都要通過拼寫檢查,錯誤的拼寫是粗糙的開發(fā)。(針對漢語則要語句通順易于理解)
20. 所有的成員變量都應該聲明在頂部,同時使用一個空行來將他們和屬性以及方法分開。
public class myclass
{
int m_number;
string m_name;
public void somemethod1()
{}
public void somemethod2()
{}
}
21. 盡可能在第一次使用局部變量的時候申明它。
22. 文件名稱應該可以反映出它所包含的類。
23. 當使用不完整的類并且將部分分配到每個文件中,用p+序數(shù)作為后綴命名文件。
// in myclassp1.cs
public partial class myclass
{…}
// in myclassp2.cs
public partial class myclass
{…}
24. 總是將大括號放在一個新行上。
25. 匿名方法和一般(正規(guī))的方法代碼使用相似的代碼布局
a. 規(guī)定:大括號(方法體的括號)必須使用新行
delegate void somedelegate(string somestring);
// 正確的是:
public void invokemethod()
{
somedelegate somedelegate = delegate(string name)
{
messagebox.show(name);
};
somedelegate(“juval”);
}
// 避免使用:
public void invokemethod()
{
somedelegate somedelegate = delegate(string name){ messagebox.show(name);};
somedelegate(“juval”);
}
26. 在匿名無參方法中要使用空的括號。
a. 如果匿名方法有可能被使用在任何委托中那么可以省略括號。
delegate void somedelegate();
// 正確的方法是:
somedelegate somedelegate1 = delegate()
{
messagebox.show(“hello”);
}
// 避免使用:
somedelegate somedelegate1 = delegate
{
messagebox.show(“hello”);
}