C# 入門指南 - 變數命名規則

程式 (program) 裡識別字 (identifier) 名稱非常多,例如類別 (class) 名稱、屬性 (property) 名稱、方法 (method) 名稱、參數 (parameter) 名稱、區域變數 (local variable) 名稱等等




有些名稱是自行定義的,有些名稱則屬於 .net 中已經定義好的,例如 String 、 args 等。 .net 是隨編譯器 (compiler) 提供的程式庫 (library) ,提供非常多樣的功能,例如資料結構、處理時間、輸入輸出、圖形介面、網路通訊等,我們在需要時可以引入所需的名稱,無須自行開發相同或類似的程式。


我們自行定義的識別字應避免與 .net 中的相同,如果我們定義相同的識別字名稱,雖然可以通過編譯,但容易造成混淆,因此應避免,例如以下程式
// 使用 .net 中的 System 名稱空間
using System;

// 使用與 .net 相同名稱的變數
class WrongName {
    static void Main() {
        String a = "22";
        
        System.Console.WriteLine();
        System.Console.WriteLine(a.GetType());
        System.Console.WriteLine();
        
        // 變數 String 與 .net 中 String 類別名稱相同
        int String = 22; 
        
        System.Console.WriteLine(String.GetType());
        System.Console.WriteLine();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:wrongname.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2012 年 10 月 */


編譯後執行,結果如下



我們在 Main() 方法中,使用 String 當類別名稱宣告變數 (variable) ,也用 String 當變數名稱,以 int 宣告,雖然可以順利編譯執行,然而容易造成混淆,因此我們不建議這樣使用。


事實上,由於 C# 直接支援 Unicode 編碼,因此識別字可以使用任何 Unicode 字元,如
// 使用中文當類別名稱
class 中文類別 {
    int 中文屬性 = 22;
    
    static void Main() {
        中文類別 中文變數 = new 中文類別();
        
        System.Console.WriteLine();
        System.Console.WriteLine(中文變數.中文屬性);
        System.Console.WriteLine();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:chineseexample.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2012 年 10 月 */


編譯後執行,如下



但我們不建議這麼做,因為識別字採用中文的話,一來輸入法的中文為全形字元,很多運算子 (operator) 與內建名稱仍是採用英文 ASCII 的半形字元,沒有留意到容易弄錯,再來大量的已開發模組 (module) ,由於識別字仍是大量採英文的命名習慣,所以要與國外接軌的話,自己命名的識別字仍是採用英文字母比較 ok 囉!


習慣上是採用英文二十六的大小寫字母為主,另加上數字,如下表
abcdefghijklm
nopqrstuvwxyz
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
0123456789


類別以英文大寫字母開頭,若有多個英文單字組成,採取大寫駝峰型 (upper camel case)
SimpleGame
MyStory
ThreadTestDrive
RunThreads


方法或變數(包括參數、屬性等)以英文小寫字母開頭,若有多個英文單字組成,採取小寫駝峰型 (lower camel case)
actionPerformed
setUpNetworking
getField
myField


有沒有感覺到每一行程式都要以分號結尾,若是漏打分號的話,編譯器還會中斷編譯,並且提供警告訊息,分號代表什麼意思呢?有分號結尾的程式碼,在 C# 稱之為陳述 (statement) ,簡單的陳述可由運算式 (expression) 組成,接下來我們開始詳細討論運算式與陳述吧!


中英文術語對照
程式program
識別字identifier
類別class
屬性property
方法method
參數parameter
區域變數local variable
編譯器compiler
程式庫library
變數variable
運算子operator
模組module
大寫駝峰型upper camel case
小寫駝峰型lower camel case
陳述statement
運算式expression


您可以繼續參考
基礎篇


相關目錄
回 C# 入門指南
回 C# 教材
回首頁


參考資料
http://msdn.microsoft.com/en-us/library/vstudio/ms229045%28v=vs.100%29.aspx
http://msdn.microsoft.com/en-us/library/xzf533w0%28v=vs.71%29.aspx
http://msdn.microsoft.com/zh-tw/library/wew5ytx4%28v=vs.90%29.aspx
http://msdn.microsoft.com/zh-tw/library/362314fe%28v=vs.80%29.aspx
http://msdn.microsoft.com/zh-tw/library/system.string%28v=vs.80%29.aspx

沒有留言: