位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C#的基本語(yǔ)法

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-12

C#代碼的外觀和操作方式與C#和Java非常類似。初看起來(lái),其語(yǔ)法可能比較混亂,不像某些語(yǔ)言那樣與 書面英語(yǔ)十分接近。但實(shí)際上,在C#編程中,使用這種風(fēng)格是很合理的,而且不用花太多力氣就可以編寫出便于閱讀的代碼。

與其他語(yǔ)言(如Python)的編譯器不同,C#編譯器不考慮代碼中的空格、回車符或制表符(這些字符統(tǒng)稱為空 白字符)。這樣格式化代碼時(shí)就有很大的自由度,但遵循某些規(guī)則將有助于提高代碼的可讀性。

C#代碼由一系列語(yǔ)句組成,每條語(yǔ)句都用一個(gè)分號(hào)結(jié)束。因?yàn)榭瞻妆缓雎?,所以一行可以有多條語(yǔ)句,但 從可讀性的角度看,通常在分號(hào)的后面加上回車符,不在一行中放置多條語(yǔ)句。但一條語(yǔ)句放在多行是可以的(也 比較常見(jiàn))。

C#是一種塊結(jié)構(gòu)的語(yǔ)言,所有語(yǔ)句都是代碼塊的一部分。這些塊用花括號(hào)來(lái)界定(“{”和“}”),代碼塊 可以包含任意多行語(yǔ)句,或者根本不包含語(yǔ)句。注意花括號(hào)字符不需要附帶分號(hào)。

例如,簡(jiǎn)單的C#代碼塊如下所示:

{

    <code line 1, statement 1>;

    <code line 2, statement 2>

          <code line 3, statement 2>;

}

其中<code linejc, statement產(chǎn)部分并非真正的C#代碼,而是用這個(gè)文本作為C#語(yǔ)句的占位符。在這段代碼 中,第2行、第3行代碼是同一條語(yǔ)句的一部分,因?yàn)樵诘?行的末尾沒(méi)有分號(hào)??s進(jìn)第3行代碼,就更容易 確定這是第二行代碼的繼續(xù)。

下面的簡(jiǎn)單示例還使用了縮進(jìn)格式,提高了 C#代碼的可讀性。這是標(biāo)準(zhǔn)做法,實(shí)際上在默認(rèn)情況下Visual Studio會(huì)自動(dòng)縮進(jìn)代碼。一般情況下,每個(gè)代碼塊都有自己的縮進(jìn)級(jí)別,即它向右縮進(jìn)了多少。代碼塊可以互 相嵌套(即塊中可以包含其他塊),而被嵌套的塊要縮進(jìn)得多一些。

{

    <code line 1>;

    {

        <code line 2>;

        <code line 3>;

    }

    <code line 4>;

}

另外,前面代碼行的續(xù)行通常也要縮進(jìn)得多一些,如上面第一個(gè)示例中的第3行代碼所示。

當(dāng)然,這種樣式并不是強(qiáng)制的。但如果不使用它,讀者在閱讀本書時(shí)會(huì)很快陷入迷茫之中。

在C#代碼中,另一種常見(jiàn)的語(yǔ)句是注釋。注釋并非嚴(yán)格意義上的CW碼,但代碼最好有注釋。注釋的作 用不言自明:給代碼添加描述性文本(用英語(yǔ)、法語(yǔ)、德語(yǔ)等),編譯器會(huì)忽略這些內(nèi)容。在開(kāi)始處理冗長(zhǎng)的代 碼段時(shí),注釋可用于為正在進(jìn)行的工作添加提示,例如“這行代碼要求用戶輸入一個(gè)數(shù)字”,或“這段代碼由 Bob編寫”。

C#添加注釋的方式有兩種??梢栽谧⑨尩拈_(kāi)頭和結(jié)尾放置標(biāo)記,也可以使用一個(gè)標(biāo)記,其含義是“這行代 碼的其余部分是注釋”。在C#編譯器忽略回車符的規(guī)則中,后者是一個(gè)例外,但這是一種特殊情況。

要使用第一種方式標(biāo)記注釋,可在注釋開(kāi)頭加上/*字符,在末尾加上*/字符。這些注釋符號(hào)可以在單獨(dú)一 行上,也可以在不同的行上,注釋符號(hào)之間的所有內(nèi)容都是注釋。注釋中唯一不能輸入的是*/,因?yàn)樗鼤?huì)被看 成注釋結(jié)束標(biāo)記。所以下面的語(yǔ)句是正確的:

/* This is a comment */

/★ And so . . .

                     . . .is this I */

但以下語(yǔ)句會(huì)產(chǎn)生錯(cuò)誤:

/* Comments often end with " * /11 characters */

注釋結(jié)束符號(hào)后的內(nèi)容("*/"后面的字符)會(huì)被當(dāng)作c#代碼,因此產(chǎn)生錯(cuò)誤。

另一種添加注釋的方式是用//開(kāi)始一個(gè)注釋,在其后可以編寫任何內(nèi)容,只要這些內(nèi)容在一行上即可。下 面的語(yǔ)句是正確的:

// This is a different sort of comment.

但下面的語(yǔ)句會(huì)失敗,因?yàn)榈诙写a會(huì)被解釋為c#代碼:

//  So is this,

    but this bit isn't.

這類注釋可用于語(yǔ)句的說(shuō)明文檔,因?yàn)樗鼈兌挤旁谝恍猩希?/p>

<A statement〉;     // Explanation of statement

前面講過(guò),有兩種給cm碼添加注釋的方式。但在c#中,還有第三類注釋,嚴(yán)格地說(shuō),這是//語(yǔ)法的擴(kuò)展。 它們都是單行注釋,用三個(gè)/符號(hào)來(lái)開(kāi)頭,而不是兩個(gè)。

/// A special comment

正常情況下,編譯器會(huì)忽略它們,就像其他注釋一樣,但可以通過(guò)配置Visual Studio,在編譯項(xiàng)目時(shí),提 取這些注釋后面的文本,創(chuàng)建一個(gè)特殊格式的文本文件,該文件可用于創(chuàng)建文檔。為了創(chuàng)建文檔,注釋必須遵

循 XML 文檔的規(guī)則,詳見(jiàn) https://docs.microsoft.com/en-us/dotoet/csharp/programming-guide/xmldoc/xml*documentation-

comments。本書不討論這個(gè)主題,但這是很值得探討的內(nèi)容,如果讀者有時(shí)間,建議學(xué)習(xí)掌握。

特別要注意的一點(diǎn)是,C#代碼是區(qū)分大小寫的。與其他語(yǔ)言不同,必須使用正確的大小寫形式輸入代碼, 因?yàn)楹?jiǎn)單地用大寫字母代替小寫字母會(huì)中斷項(xiàng)目的編譯??纯聪旅孢@行代碼,它曾在第2章中使用:

Console .WriteLine (f,The first app in Beginning C# Programming !?’> ;

C織譯器能理解這行代碼,因?yàn)镃onsole.WriteLineO命令的大小寫形式是正確的。但是,下面的語(yǔ)句都不 能工作:

console.WriteLine("The first app in Beginning C# Programming!n);

CONSOLE.WRITELINE("The first app in Beginning C# Programming!");

Console.Writeline(nThe first app in Beginning C# Programming!");

這里使用的大小寫形式是錯(cuò)誤的,所以C#編譯器不知道我們要做什么。幸好,Visual Studio在代碼的鍵入 方面提供了許多幫助,在大多數(shù)情況下,它都知道我們要做什么。在鍵入代碼的過(guò)程中,Visual Studio會(huì)推薦 用戶可能要使用的命令,并盡可能地糾正大小寫問(wèn)題。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部