C# Coding Standard
2024-07-21 02:18:03
供稿:網友
在以前版本的visual studio中,微軟曾建議使用匈牙利命名法來寫代碼.在最近發布的.net和它的編程語言中,微軟更換了他的這一法則.
1. 對格式與方法名稱使用pascal風格[1]
public class someclass
{
public somemethod(){}
}
2. 對局部變量和方法參數使用camel風格[2]
int number;
void mymethod(int somenumber)
{}
3. 使用i作為接口前綴
interface imyinterface
{..}
4. 使用m_作為私有成員變量前綴
public class someclass
{
private int m_number;
}
5. 使用attribute作為自定義屬性類的后綴
6. 使用exception作為自定義異常處理類的后綴
7. 使用動詞形式命名方法名,如showdialog()
8. 帶有返回值的方法應該有一個方法來描述返回值,如getobjectstatus()
9. 使用易描述的變量名稱
l 避免使用單一字符描述變量名稱,如i或t.應使用index或temp替代
l 對共有以及受保護成員避免使用匈牙利命名法則[3]
l 絕不使用縮寫字符,如使用num代替number
10. 總是使用c#預定義格式,而不使用在system空間內的別名
object not 0bject
string not string
int not int32
11. 一般的,對于格式使用大寫字母,當處理.net格式type時使用type后綴
//correct:
public class linkedlist<k, t>
{..}
//avoid:
public class linkedlist<keytype,datatype>
{..}
12. 使用易理解的命名空間[4]名稱,如產品或公司名稱
13. 避免使用命名空間的完整限定名稱,應使用using聲明替代
14. 避免using聲明放置在命名空間內部
15. 將所有的框架命名空間分組,將用戶或第三方命名空間放置在其下
using system;
using system.collections;
using system.componentmodel;
using system.data;
using mycompany;
using mycontrols;
16. 使用委托引用[5]代替顯式的委托實例
delegate void somedelegate();
public void somemethod()
{..}
somedelegate somedelegate=somemethod;
17. 保持嚴格的縮進
l 對縮進使用3個空格位
l 絕不使用tab或者不標準的縮進,如1,2或4個空格位
18. 將注釋縮拍在與代碼縮進同等級的位置上
19. 所有的注釋應該通過拼寫檢查.拼錯的注釋將預示冗余的開發
20. 所有的成員變量應該在開始就被聲明,并使用單獨一行將屬性與方法區域分開
public class myclass
{
int m_number;
string m_name;
public void somemethodl()
{}
public void somemethod2()
{}
}
21. 在離第一次使用變量盡可能近的地方聲明該局部變量
22. 文件名稱應反映出其包含的類
23. 當使用partial類[6]并將其分配給每個文件一部分時,對每個文件命名使用后綴p并附帶一個額外的數字
//in myclassp1.cs
public partial class myclass
{..}
// in myclassp2.cs
public partial class myclass
{..}
24. 將反括號({)放置與新的一行
25. 對于匿名方法參照有規律的代碼規劃,其縮進應與匿名委托聲明對齊
delegate void somedelegate (string somestring);
//correct:
public void invokemethod()
{
somedelegate somedelegate=delegate (string name)
{
messagebox.show(name);
};
somedelegate ("juval");
}
//avoid
public void invokemethod()
{
somedelegate somedelegate=delegate (string name)
{messagebox.show(name);};
somedelegate(”juval");
}
26. 對于匿名缺省參數的方法,應該使用空括號表示.
delegate void somedelegate();
//correct
somedelegate somedelegate1=delegate()
{
messagebox.show("hello");
};
//avoid
somedelegate somedelegate1=delegate
{
messagebox.show("hello");
};
由于本人e文有限,所以翻譯注釋不當之處,請指明。
[1] 特指使用pascal的命名規范命名類型和方法的名字
[2] 特指使用camel命名規范命名局部變量和方法的參數
[3] 匈牙利命名法則:變量名=變量類型+變量的英文意思(或縮寫)
[4] namespace用于聲明一個范圍.此命名空間范圍允許您組織代碼并為您提供了創建全局唯一類型的方法.
[5] delegate聲明定義一種引用類型,該類型可用于將方法用特定的簽名封裝.委托實例封裝靜態方法或實例方法. 委托大致類似于c++中的函數指針;但是,委托是類型安全和可靠的
[6] partial簡單來說即是使用不完整的類定義并且將部分分配到每個文件中
網站運營seo文章大全提供全面的站長運營經驗及seo技術!