一 程序的編譯、構成編輯器
a) 編寫C#代碼通常用VS,但做者在這兒介紹了使用記事本編寫C#代碼並編譯運行的過程,以便對VS有更深刻的認識。函數
用記事本編寫C#代碼後,修改文本文件的後綴爲.cs,而後用csc.exe(C# Command-Line Complier)來編譯。若是編譯成功,在命令行輸入程序的路徑和名稱即可以執行了。編碼
b) 用命名空間來爲類分組,能夠在.cs文件的頭部使用Using指令來代指命名空間,後續使用類時,編輯器會從Using指令指定的命名空間中查找是否有對應的類。命令行
還能夠在Using指令區域爲類建立別名,好比:對象
c) 程序錯誤繼承
對程序來講,任何意料以外發生的事均可以認爲是錯誤。程序錯誤分爲兩種:編譯時錯誤和運行時錯誤。前者在編譯的時候就會發生,這時編輯器會提示錯誤信息相似:接口
錯誤信息告知了編譯時發生的錯誤詳情,並有錯誤代碼,好比圖中的cs0234。關於該錯誤的更詳細信息能夠在.NET Framework SDK Documentation中根據錯誤碼查找。內存
對於編譯時錯誤,若是一個文件中有多處錯誤,編譯器只會報第一個錯,由於只要遇到錯誤,編譯就會終止。作用域
二 ILDASM編譯器
這裏做者詳細介紹了HelloWold.cs程序使用ILDASM生成的IL碼。
Main函數的IL碼以下:
程序第一行.method關鍵字表示方法,另外有public、static修飾符,最後還有managed關鍵字,與之對應的還有unmanaged、unsafe,這些做者會在後面講解。
第二行的.entrypoint表示這個方法是這個程序的入口,這在C#中對應Main函數爲入口函數。
IL_0000行,ldstr爲Load String的簡寫,將硬編碼「Hello, World」裝載到內存。
IL_0005行,調用Console.WriteLine函數,後面括號中的(class System.String)指示了參數的類型和個數。
最後一行還有IL_000a: ret,圖裏面漏掉了,表示返回執行結果。
三 關於命名規範
統一的命名規範有很對好處,好比下降維護成本。本書成書於2002年先後,做者還認爲匈牙利命名規範(名稱中包含了變量的類型、做用域等信息)不適合面嚮對象語言,由於在這類語言中類型都繼承自基本類型,好比在C#中都繼承自System.Object。
推薦組合使用帕斯卡命名法(Pascal Casing)和駝峯命名法(Camel Casing),在類、方法的命名中使用帕斯卡命名法,在變量的命名中使用駝峯命名法。詳情以下:
命名空間:帕斯卡,推薦使用公司名稱
類:帕斯卡,使用能描述類的職能的名詞
方法:帕斯卡,使用描述方法動做的動詞
方法參數:帕斯卡,使用有意義的名稱
接口:帕斯卡,以大寫字母I開頭,表明某種行爲,推薦使用I***able的形式