《Inside C#》笔记(二) 初识C#
一 程序的編譯、構(gòu)成
a) 編寫C#代碼一般用VS,但作者在這兒介紹了使用記事本編寫C#代碼并編譯運(yùn)行的過程,以便對(duì)VS有更深入的認(rèn)識(shí)。
用記事本編寫C#代碼后,修改文本文件的后綴為.cs,然后用csc.exe(C# Command-Line Complier)來編譯。如果編譯成功,在命令行輸入程序的路徑和名稱便可以執(zhí)行了。
?
b) 用命名空間來為類分組,可以在.cs文件的頭部使用Using指令來代指命名空間,后續(xù)使用類時(shí),編輯器會(huì)從Using指令指定的命名空間中查找是否有對(duì)應(yīng)的類。
還可以在Using指令區(qū)域?yàn)轭悇?chuàng)建別名,比如:
?
?
c) 程序錯(cuò)誤
對(duì)程序來說,任何意料之外發(fā)生的事都可以認(rèn)為是錯(cuò)誤。程序錯(cuò)誤分為兩種:編譯時(shí)錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。前者在編譯的時(shí)候就會(huì)發(fā)生,這時(shí)編輯器會(huì)提示錯(cuò)誤信息類似:
?
?
錯(cuò)誤信息告知了編譯時(shí)發(fā)生的錯(cuò)誤詳情,并有錯(cuò)誤代碼,比如圖中的cs0234。關(guān)于該錯(cuò)誤的更詳細(xì)信息可以在.NET Framework SDK Documentation中根據(jù)錯(cuò)誤碼查找。
?
?
對(duì)于編譯時(shí)錯(cuò)誤,如果一個(gè)文件中有多處錯(cuò)誤,編譯器只會(huì)報(bào)第一個(gè)錯(cuò),因?yàn)橹灰龅藉e(cuò)誤,編譯就會(huì)終止。
?
?
二 ILDASM
這里作者詳細(xì)介紹了HelloWold.cs程序使用ILDASM生成的IL碼。
?Main函數(shù)的IL碼如下:
?
程序第一行.method關(guān)鍵字表示方法,另外有public、static修飾符,最后還有managed關(guān)鍵字,與之對(duì)應(yīng)的還有unmanaged、unsafe,這些作者會(huì)在后面講解。
第二行的.entrypoint表示這個(gè)方法是這個(gè)程序的入口,這在C#中對(duì)應(yīng)Main函數(shù)為入口函數(shù)。
IL_0000行,ldstr為Load String的簡(jiǎn)寫,將硬編碼“Hello, World”裝載到內(nèi)存。
IL_0005行,調(diào)用Console.WriteLine函數(shù),后面括號(hào)中的(class System.String)指示了參數(shù)的類型和個(gè)數(shù)。
最后一行還有IL_000a: ret,圖里面漏掉了,表示返回執(zhí)行結(jié)果。
?
?
三 關(guān)于命名規(guī)范
統(tǒng)一的命名規(guī)范有很對(duì)好處,比如降低維護(hù)成本。本書成書于2002年前后,作者還認(rèn)為匈牙利命名規(guī)范(名稱中包含了變量的類型、作用域等信息)不適合面向?qū)ο笳Z言,因?yàn)樵谶@類語言中類型都繼承自基本類型,比如在C#中都繼承自System.Object。
推薦組合使用帕斯卡命名法(Pascal Casing)和駝峰命名法(Camel Casing),在類、方法的命名中使用帕斯卡命名法,在變量的命名中使用駝峰命名法。詳情如下:
命名空間:帕斯卡,推薦使用公司名稱
類:帕斯卡,使用能描述類的職能的名詞
方法:帕斯卡,使用描述方法動(dòng)作的動(dòng)詞
方法參數(shù):帕斯卡,使用有意義的名稱
接口:帕斯卡,以大寫字母I開頭,代表某種行為,推薦使用I***able的形式
轉(zhuǎn)載于:https://www.cnblogs.com/zhixin9001/p/6986762.html
總結(jié)
以上是生活随笔為你收集整理的《Inside C#》笔记(二) 初识C#的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构之并查集
- 下一篇: C# 获取文件MD5值的方法