2-2 Hello World程式碼解釋

我們在上一節教你如何建立HelloWorld程式,
這一節來解釋程式碼,我們從Main方法開始講起。

方法的定義

[可選多個修飾詞]  回傳資料的型別  方法名稱( [多個參數] ) {
方法內容
}

以HelloWorld這個例子來說:

  • static是修飾詞,代表「靜態」,表示這個方法不需要物件實體。
    (新人一定聽不懂「不需要物件實體」的意思,目前只要知道他是靜態修飾詞即可)
  • void在英文上是「空」、「虛無」的意思,這裡代表該方法不回傳任何資料。
  • Main是這個方法的名稱,方法名稱後面一定要接小括號,裡面寫著需要的參數。
    在這裡例子不需要參數,因此小括號內不用寫任何內容。
  • 小括號之後,接著一組大括號,裡面寫內容,也就是實際上要做哪些事。
    在這個例子,Main方法的內容只有一行:Console.WriteLine( “Hello World!” );
進入點

不論任何程式語言,一定讓程式知道要從哪裡開始執行,這個開始執行的位置稱為進入點

在C#這個程式語言,規定程式的進入點:
1. 方法名稱一定是Main
2. 一定有static修飾詞
3. 回傳型別是void或int
4. 如果需要從命令列呼叫,參數的型別是string[]

因此如果沒有符合這個條件的方法,建置就會失敗而無法執行程式。
如果我現在把static拿掉,或是把Main換成其它名字,建置的時候就會失敗,會跳出以下訊息。

根據以上規則,你也可能會在其它地方看到這種寫法。
不過我們這個例子不需要回傳資料,也不需要任何參數。

P.S.:
return 0;
return的意思是方法立即結束,並且回傳資料,在這裡就是回傳整數0。

印出Hello World

實際上印出Hello World的指令只有
Console.WriteLine( “Hello World!” );
這一行

大略解釋一下這行的意思,有些細節目前還無法理解,因此先大約有個印象即可。

把滑鼠移到方法名稱上,先來看一下WriteLine的描述。

WriteLine是Console這個類別內的方法,它將傳入的參數印在主控台上,並且換行。

void代表此方法不會回傳資料。
string value代表使用時需要放入string型別的資料,該參數名稱是value。
string在英文是「串」的意思,在C#代表一串文字。
參數名稱就只是個名稱,該方法內以該名稱使用資料。

那麼我們寫進去的string資料是什麼呢?
是的,就是”Hello World!”,注意一定要有雙引號
將文字放在雙引號內,就會自動轉換成string型別資料

實際上WriteLine可以接受各種型別的資料。
跟後面寫的多載有關係,不過目前還不需要理解多載。

最後,你可能會疑惑分號(;)是什麼意思。
在C#,這個符號就像是標點符號的逗號或是句號,表示一個指令的結尾。

// ==============================================
// 這裡開始以下的內容,對新人來說應該暫時無法理解。
// 可以不用完全理解,但仍然需要有些印象
// ==============================================

using指示詞

寫程式的時候,我們常常會用到已經存在的函式庫。
可能是其它人寫的,也可能是你自己寫的。

要使用其它函式庫,就在檔案的開頭寫上using + 目標命名空間(namespace)

例如:我們這個程式的目的是要在主控台上印文字,因此需要Console這個類別(class)。
這個類別在命名空間System內。

因此第一行要寫
using System;

命名空間(namespace)

要使用寫在某個命名空間內的類別,就必須使用using指示詞來宣告使用。
你也可以不把類別寫在namespace內,如果這樣做,不需要namespace就可以使用該類別。

練習題

基本上這個練習盡可能不要邊看教學邊寫,因為你得要熟悉整個從建立專案到執行程式的流程。

1. 從頭開始創建專案,然後重新寫Hello World程式。

2. 把上面那個程式改寫,改成把你自己隨意決定的文字印出來。