C# 編碼規范和編程好習慣
撰文:DotNetSpider.com(http://www.dotnetspider.com)
翻譯:楊賀宏
誰都會寫代碼!幾個月的編程經驗可以讓你寫出“可運行應用程序”。讓它可運行容易,但是以最有效率的方式編碼就需要下更多的功夫!
要知道,大多數程序員在寫”可運行代碼,“而不是”高效代碼“。我們在這個指南課程前面提到,你想成為你們公司”最尊貴的專業人員“嗎?寫”高效代碼“是一項藝術,你必須學習和實踐它。
命名慣例和規范
注記 :
Pascal 大小寫形式-所有單詞第一個字母大寫,其他字母小寫。
Camel 大小寫形式-除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。
類名使用Pascal 大小寫形式
public class HelloWorld{ ...}
方法使用Pascal 大小寫形式
public class HelloWorld{ void SayHello(string name) { ... }}
變量和方法參數使用Camel 大小寫形式
public class HelloWorld{ int totalCount = 0; void SayHello(string name) { string fullMessage = "Hello " + name; ... }}
不要使用匈牙利方法來命名變量
以前,多數程序員喜歡它-把數據類型作為變量名的前綴而m_作為成員變量的前綴。例如:
string m_sName;int nAge;
然而,這種方式在.Net編碼規范中是不推薦的。所有變量都用camel 大小寫形式,而不是用數據類型和m_來作前綴。
用有意義的,描述性的詞語來命名變量
- 別用縮寫。用name, address, salary等代替 nam, addr, sal
- 別使用單個字母的變量象i, n, x 等. 使用 index, temp等
用於循環迭代的變量例外:
for ( int i = 0; i < count; i++ ){ ...}
如果變量只用於迭代計數,沒有在循環的其他地方出現,許多人還是喜歡用單個字母的變量(i) ,而不是另外取名。
- 變量名中不使用下劃線 (_) 。
- 命名空間需按照標准的模式命名
...
文件名要和類名匹配
例如,對於類HelloWorld, 相應的文件名應為 helloworld.cs (或, helloworld.vb)
縮進和間隔
縮進用 TAB . 不用 SPACES.。
注釋需和代碼對齊.。
花括弧 ( {} ) 需和括號外的代碼對齊.。
用一個空行來分開代碼的邏輯分組。.
bool SayHello (string name) { string fullMessage = "Hello " + name; DateTime currentTime = DateTime.Now; string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( ... ) { // Do something // ... return false; } return true; }
這段代碼看起來比上面的好::
bool SayHello ( string name ) { string fullMessage = "Hello " + name; DateTime currentTime = DateTime.Now; string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( ... ) { // Do something // ... return false; } return true; }
在一個類中,各個方法需用一空行,也只能是一行分開。
花括弧需獨立一行,而不象if, for 等可以跟括號在同一行。