與C++一樣,C#程序也采用區(qū)分大小寫的自由書寫格式,編譯器會忽略多余的白空符;C#也支持“\a”、“”和“\t”等轉(zhuǎn)移字符;C#的每個語句也都以分號“;”結(jié)束;語句塊也用花括號對“{”和“}”來界定。參見下表:(紅色為C#特有的)
C#的符號與標記
說明 |
符號與標記 |
空白 |
空格SP |
制表符 |
水平制表符HT(Tab)或垂直制表符VT |
標點 |
. , : ; |
行結(jié)束符 |
回車CR |
注釋 |
//、/*、*/、///、/** |
預處理指令 |
# |
塊 |
{} |
泛型 |
<> |
可空類型 |
? |
字符 |
Unicode字符 |
轉(zhuǎn)移字符 |
\代碼 |
逐字符 |
@"……"、@標識符 |
數(shù)值后綴 |
d D、f F、l L、lu LU、m M、u U、ul UL |
運算符 |
+、-、*、/、%、++、--、<、==、>、?:、??、()、…… |
(1)文檔注釋符“///……”和“/**……*/”
C#除了支持C++的單行注釋“//……”和定界注釋“/*…… */”外,還增加了與之對應的如下兩種文檔注釋方式:
l 單行文檔注釋“///……”——是“//……”方式的擴展,增加了一個斜線符“/”。
l 定界文檔注釋:“/**…… */”——是/*…… */方式的擴展,在起端增加了一個星號符“*”。
這兩種新注釋,都用于C#項目說明文檔的自動提取和生成,說明文檔采用的是XML格式,由C#編譯器自動生成。但是需要添加/doc編譯器選項,或在Visual Studio的IDE中激活該功能。具體方法是:選“項目”菜單中的“*屬性”菜單項;在IDE中部打開的項目屬性頁中,選左列的“生成”選項,在右邊下部的“輸出”欄中,選中“XML文檔文件”復選框以激活文檔自動生成功能,還可以輸入或修改“輸出路徑”和文件名,缺省為項目的“bin\Debug”或“bin\Release”子目錄和“項目名.XML”。參見下圖:
例如,C# 編譯器為不加任何注釋的HelloWorld項目所生成的說明文檔為:
// HelloWorld.XML
xml version="1.0"?>
<doc>
<assembly>
<name>HelloWorldname>
assembly>
<members>
members>
doc>
如果你在Program類的定義前加上一行,在鍵入“///”后,系統(tǒng)會自動生成下面代碼中的灰色部分,然后你自己再添加綠色部分。
/// /// Start class for simple HelloWorld ///
則編譯器會自動生成如下說明文檔:
// HelloWorld.XML
xml version="1.0"?>
<doc>
<assembly>
<name>HelloWorldname>
assembly>
<members>
<member name="T:HelloWorld.Program">
<summary>
Start class for simple HelloWorld
summary>
member>
members>
doc>
(2)逐字符@
C#新引進的逐字符(verbatim character)@,可以避免解析字符串中的轉(zhuǎn)移字符和標識符中的關鍵字等:
l 逐字字符串(verbatim string)——@"……",不解析其中的轉(zhuǎn)移序列。例如:
string fn =
@"C:\Doc\data.txt";
l 逐字標識符(verbatim identifier)——@標識符,不解析標識符,使關鍵字也可以用作變量名、類名和方法名等普通標識符。例如:
int @
for = 12;
(3)可空類型符?
不能使用的對象,可以用設置其值為空null來標識。但是基本值類型是不能賦值為空的,那會導致編譯錯誤。傳統(tǒng)的經(jīng)驗解決辦法是賦給其一個取值范圍之外的值,如“-1”(0xFFFFFFFF),但這種方法并不標準。
現(xiàn)在C# 給出了一種完美的解決方案——可空類型(nullable type):聲明值類型的變量時,在變量名后添加可空類型的問號符“?”,則該變量成為可空類型,可以被賦值為空。
在C# 中,還可以通過可空類型的共用只讀屬性HasValue,來判斷可空類型變量是否為空。例如:
int? x = 123;
int? y =
null;
if (x.HasValue) Console.WriteLine(x.Value);
// 輸出123 if (y.HasValue) Console.WriteLine(y.Value);
// 輸出
網(wǎng)站題目:(C#基本語法)1.符號與標記
本文URL:
http://weahome.cn/article/jegsis.html