用於標識符的規則
標示符是給變量、用戶定義的類型(例如類和結構)和這些類型的成員制定的名稱。標示符區分大小寫。確定在C#使用標示符有兩個規則:
● 它們必須以一個字母或下劃線開頭,但可以包含數字字符;
● 不能把C#關鍵字用作標識符。
C#包含保留關鍵字
abstract |
do |
in |
Protected |
true |
as |
double |
int |
Public |
try |
base |
else |
interface |
Readonly |
typeof |
bool |
enum |
internal |
Ref |
uint |
break |
event |
is |
Return |
ulong |
byte |
explicit |
lock |
Sbyte |
unchecked |
case |
extern |
long |
Sealed |
unsafe |
catch |
false |
namespace |
Short |
ushort |
char |
finally |
New |
Sizeof |
using |
checked |
fixed |
Null |
Stackalloc |
virtual |
class |
float |
Object |
Static |
volatile |
const |
for |
Operator |
String |
void |
continue |
foreach |
Out |
struct |
while |
decimal |
goto |
Override |
switch |
|
default |
if |
Params |
this |
|
delegate |
implicit |
Private |
throw |
|
如果需要把某一保留字用作標識符(例如,訪問一個用另一種語言編寫的類),可以在標識符的前面加上前綴@符號,指示編譯器其後的內容是一個標識符,而不是C#關鍵字(所以abstract不是有效的標識符,而@abstract是)。
用法約定
變量名用帶有前綴字母來表示某個數據類型,這種約定稱爲Hungarian表示法。
1、命名約定
使程序易於理解的一個重要方面是給對象選擇命名的方式,包括變量名、方法名、類名、枚舉
名和命名空間的名稱。
在.NET Framework中,一般規則也是變量名要反映變量實例的功能,而不是反映數據類型。例如,Height就是一個比較好的變量名,而IntegerValue就不太好。但是,這種規則是一種理想狀態,很難達到。在處理控件時,大多數情況下使用ConfirmationDialog 和 ChooseEmployeeListBox等變量名比較好,這些變量名說明了變量的數據類型。
名稱的約定包括以下幾個方面
(1) 名稱的大小寫
在許多情況下,名稱都應使用Pascal大小寫命名形式。 Pascal 大小寫形式是指名稱中單詞的第一個字母大寫,如EmployeeSalary、ConfirmationDialog、PlainTextEncoding。注意,命名空間、類、以及基類中的成員等的名稱都應遵循該規則,最好不要使用帶有下劃線字符的單詞,即名稱不應是employee_salary。其他語言中常量的名稱常常全部都是大寫,但在C#中最好不要這樣,因爲這種名稱很難閱讀,而應全部使用Pascal 大小寫形式的命名約定
我們還推薦使用另一種大小寫模式:camel大小寫形式。這種形式類似於Pascal 大小寫形式,但名稱中第一個單詞的第一個字母不是大寫:employeeSalary、confirmationDialog、plainTextEncoding。有三種情況可以使用camel大小寫形式。
● 類型中所有私有成員字段的名稱都應是camel大小寫形式:
public int subscriberId;
但要注意成員字段名常常用一個下劃線開頭:
public int _subscriberId;
傳遞給方法的所有參數都應是camel大小寫形式:
public void RecordSale(string salesmanName, int quantity);
camel大小寫形式也可以用於區分同名的兩個對象-- 比較常見的情況是屬性封裝一個字段:
private string employeeName;
public string EmployeeName
{
get
{
return employeeName;
}
}
(2) 名稱的風格
名稱的風格應保持一致。例如,如果類中的一個方法叫ShowConfirmationDialog(),另一個方法就不能叫ShowDialogWarning()或WarningDialogShow(),而應是ShowWarningDialog()。
(3) 命名空間的名稱
命名空間的名稱非常重要,一定要仔細設計,以避免一個命名空間中對象的名稱與其他對象同名。記住,命名空間的名稱是.NET區分共享程序集中對象名的唯一方式。如果軟件包的命名空間使用的名稱與另一個軟件包相同,而這兩個軟件包都安裝在一臺計算機上,就會出問題。因此,最好用自己的公司名創建頂級的命名空間,再嵌套技術範圍較窄、用戶所在小組或部門、或類所在軟件包的命名空間。Microsoft建議使用如下的命名空間:<CompanyName>. <TechnologyName>,
(4) 名稱和關鍵字
名稱不應與任何關鍵字衝突,這是非常重要的。