2.3 程序編寫規范
下面給出兩段實現同樣功能的C# 代碼,如圖2.17 所示。

圖2.17 兩段實現同樣功能的C# 代碼
大家在學習時,愿意閱讀圖2.17 中的左側代碼還是右側代碼?相信大家更喜歡閱讀圖2.17 中的右側代碼,因為它看上去更加規整。這是一種基本的代碼編寫規范。本節將對C# 代碼的編寫規則及命名規范進行介紹。遵循一定的代碼編寫規則和命名規范可以使代碼更加規范化,對代碼的理解與維護起到至關重要的作用。
2.3.1 代碼編寫規則

代碼編寫規則通常對應用程序的功能沒有影響,但對改善對源代碼的理解是有幫助的。養成良好的習慣對于軟件的開發和維護都是很有益的,下面列舉一些常用的代碼編寫規則。
●在編寫C# 程序時,統一代碼縮進的樣式,比如統一縮進2 個字符或4 個字符。
●每編寫完一行C# 代碼,都應該換行編寫下一行代碼。
●在編寫C# 代碼時,應該合理使用空格,使代碼結構更加清晰。
●盡量使用接口,然后使用類實現接口,以提高程序的靈活性。
●關鍵的語句(包括聲明關鍵的變量)必須要寫注釋。
●建議局部變量在最接近使用它的地方聲明。
●不要使用goto 系列語句,除非是用在跳出深層循環時。
●避免編寫超過5 個參數的方法,如果要傳遞多個參數,則使用結構。
●避免書寫代碼量過大的try-catch 語句塊。
●避免在同一個文件中編寫多個類。
●生成和構建一個長的字符串時,一定要使用StringBuilder類型,而不使用string類型。
●對于if 語句,應該使用一對 “{ }” 把語句塊包含起來。
●switch 語句一定要配置default 語句來處理意外情況。
2.3.2 命名規范

命名規范在編寫代碼中起到很重要的作用,雖然不遵循命名規范程序也可以運行,但是使用命名規范可以更加直觀地了解代碼所代表的含義。下面介紹C# 中常用的一些命名規范。
1.兩種命名方法
在C# 中,常用的命名方法有兩種,分別是Pascal 命名法和Camel 命名法,下面分別進行介紹。
(1)用Pascal 命名法來命名方法和類型。以Pascal 命名法命名時,第一個字母必須為大寫,并且后面連接詞的第一個字母也要大寫。
學習筆記
Pascal 是以紀念法國數學家Blaise Pascal 而命名的一種編程語言,C# 中的Pascal命名法就是根據該語言的特點總結出來的一種命名方法。
例如,定義一個公共類,并在此類中創建一個公共方法,代碼如下。


(2)用Camel 命名法來命名局部變量和方法的參數。使用Camel 命名法命名時,變量或方法名中第一個單詞的首字母需要小寫。
學習筆記
Camel 命名法又稱為駝峰式命名法,它是由駱駝的體形特征推理出來的一種命名方法。
例如,聲明一個字符串變量和創建一個公共方法,代碼如下。

2.程序中的命名規范
在開發項目時,不可避免地要遇到各個程序元素的命名問題,比如項目的命名、類的命名、方法的命名等。例如,在圖2.18 中聲明了一個User 類,在圖2.19 中聲明了一個aaa 類。

圖2.18 聲明User 類

圖2.19 聲明aaa 類
從類的命名上很容易可以看出,圖2.18 中的User 類應該是與用戶相關的一個類,但是圖2.19 中聲明的aaa 類,即使再有想象力的人,恐怕也想象不出這個類到底是做什么用的。由這兩個例子可以看出,在對程序元素命名時,如果遵循一定的命名規范,將使代碼更加具有可讀性。下面介紹常用程序元素的基本命名規范。
●在命名項目時,可以使用公司域名+ 產品名稱,或者直接使用產品名稱。
例如,在命名項目時,可以將項目命名為 “mingrisoft.ERP” 或 “ERP”。其中,mingrisoft 是公司域名,ERP 是產品名稱。
●用有意義的名字定義命名空間,如公司名、產品名。
例如,利用公司名和產品名定義命名空間,代碼如下。


●接口的名稱加前綴 “I”。
例如,創建一個公共接口Iconvertible,代碼如下。

●類的命名最好能夠體現出類的功能或操作。
例如,創建一個名稱為Operation 的類,用來作為運算類,代碼如下。

●方法的命名:一般將其命名為動賓短語,表明該方法的主要作用。
例如,在公共類File 中創建CreateFile 方法和GetPath 方法,代碼如下。

●在定義成員變量時,最好加前綴 “_”。
例如,在公共類DataBase 中聲明一個私有成員變量_connectionString,代碼如下。

- Learning Python Web Penetration Testing
- Mastering ServiceStack
- 神經網絡編程實戰:Java語言實現(原書第2版)
- Hands-On JavaScript High Performance
- Python編程與幾何圖形
- C#應用程序設計教程
- ScratchJr趣味編程動手玩:讓孩子用編程講故事
- Python Essentials
- C++程序設計教程(第2版)
- Angular Design Patterns
- Java高并發編程詳解:深入理解并發核心庫
- Python第三方庫開發應用實戰
- 實戰Python網絡爬蟲
- Mastering PowerCLI
- SQL Server on Linux