
構(gòu)成C#語言的基本元素
構(gòu)成C#語言的基本元素和構(gòu)成其他語言的基本元素有所區(qū)別。
C#跟Java很像,是因?yàn)閮烧叩幕驹卮蟛糠忠恢?。其他部分很相似?/p>
1)熟悉C#語言:認(rèn)識所有構(gòu)成C#語言的基本元素,并能正確使用常見的基本元素。
2)精通C#語言:能使用所有構(gòu)成C#語言的基本元素,使用常用基本元素,而不犯錯。并對這些基本元素有深層次的理解,及其背后運(yùn)行的機(jī)制。

標(biāo)記 Token,就是對編譯器來說,有意義的記號。編譯器可以識別出 token。編譯器會忽略注釋和空白,它們對編譯器而言,沒有意義。
關(guān)鍵字(keyword)
構(gòu)成一門編程語言的基本詞匯。C#關(guān)鍵字包含兩種:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/
1) 任何時(shí)候都是關(guān)鍵字

2)“上下文關(guān)鍵字”,只有在上下文語境中才是關(guān)鍵字。

有些關(guān)鍵字有多種用途(以后會講)。
關(guān)鍵字是按邏輯分組的,自學(xué)時(shí)也該按分組學(xué)習(xí)。

操作符(operator)
就是運(yùn)算符,表達(dá)運(yùn)算思想的符號。如:+-*/,C#還有一些自己特有的操作符,有些操作符,其實(shí)是關(guān)鍵字,稱為“操作符關(guān)鍵字”。
C#操作符如下:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/index
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/index

標(biāo)識符(Identifier)
就是名字,如:變量名,類名,類的成員名(屬性名,方法名,事件名)。
合法的標(biāo)識符指編譯器能夠編譯的標(biāo)識符,否則會報(bào)錯。
參見C#語言規(guī)范文檔。
通常情況下,關(guān)鍵字是“被保留”的,不可用作標(biāo)識符。但是
1)允許用字符(如:英文字符,漢語字符等等),以及下劃線作為初始字符
2)初始字符后面,可以跟字符,數(shù)字,漢語字符,等等
3)允許在標(biāo)識符中使用Unicode轉(zhuǎn)義序列,不過僅在處理 a)字符(第 ?2.4.4.4 節(jié))和 b)規(guī)則字符串(第 ?2.4.4.5 節(jié))中處理。不在其他任何位置處理 Unicode 字符轉(zhuǎn)義(例如,在構(gòu)成運(yùn)算符、標(biāo)點(diǎn)符號或關(guān)鍵字時(shí))
4)允許以“@”字符作為前綴,以使關(guān)鍵字能夠用作標(biāo)識符。
5)不允許用數(shù)字作為初始字符
6)漢語,德語等等,也可以做標(biāo)識符
標(biāo)識符命名規(guī)范:合法的標(biāo)識符,并不意味著可讀性好。所以標(biāo)識符要有意義,以便其他人能明白該標(biāo)識符代表什么。
1)對類命名時(shí),標(biāo)識符要是一個“名詞”
2)對類的成員命名時(shí),屬性一定是個“名詞”,方法一定是個“動詞”
大小寫規(guī)范:?
1)駝峰法:單詞首字母先小寫再大寫,交替,用于變量名。 e.g. myVariable
2)Pascal法(帕斯卡命名法):單詞首字母大寫,用于方法名,類名,名稱空間等。e.g. MyVariable, WriteLine
區(qū)別于Java,Java要求方法也要用駝峰法命名。
標(biāo)點(diǎn)符號:
不參與運(yùn)算的符號
文本(字面值)
1)整數(shù)
(32位)普通整型 int, e.g. int x = 2;
(64位)長整型 long,long y = 2L; (L表示長整型)
位數(shù)越多,能表示的數(shù)字范圍就越廣。2位(00-99),4位(0000-9999)。
2)實(shí)數(shù)(小數(shù))
(32位)單精度浮點(diǎn)型 float,e.g.? float x?= 2.0F; (F表示單精度浮點(diǎn)數(shù),系統(tǒng)默認(rèn)2.0為雙精度浮點(diǎn)數(shù),一定要加F才能代表單精度浮點(diǎn)數(shù))
(64位)雙精度浮點(diǎn)型 double,e.g. double y??= 2.0D; (D表示雙精度浮點(diǎn)數(shù),此處已經(jīng)double,去掉D也可以)
3)字符(串)
char 單字符用單引號:e.g. char c?= 'a';??
char,只能代表一個字符,只能用單引號,否則報(bào)錯。e.g. char c?= "apple";
4)字符串
string 字符串用雙引號,可以代表null,單字符,一串字符。
5)布爾值:true 和 false
6)空值(null)e.g.?string str?= null;
實(shí)際應(yīng)用中,null引用會報(bào)錯“System.NullReferenceException”。要去找丟失的引用。
注釋與空白:
編譯器會忽略
1) // 單行注釋
2)/*? ...... */ 塊注釋
好的代碼有自解釋性,除非比較復(fù)雜,才加簡短明了的注釋。
暫時(shí)不用的代碼也可以先注釋掉。
3)空白
e.g.? string? ? ? ? ? str? ? ? ? ?=? ? ? ? ?"apple";
不報(bào)錯,但是可讀性差,VS中,Edit--Advanced--FormateDocument,點(diǎn)擊后自動調(diào)整。(ctrl+E+D)