第 1 課 · 約 8 分鐘
C# 的 Hello World
寫下你的第一行 C#,搞懂它做了什麼,再弄明白為什麼你會在野程式碼裡遇到兩種不同形狀的 C# 程式。
最小的有用程式
從 C# 9(.NET 5+)開始,程式可以就是檔案頂部的幾條語句——沒有類,沒有 Main。今天 dotnet new console 給你的就是這個:
Console.WriteLine("Hello, world!");
Console.WriteLine 列印引數並換行。Console.Write 列印但不換行——執行這段,看兩次呼叫擠在同一行:
Console.Write("C# is");
Console.WriteLine("one line");
註釋
兩種,和 C++、Java 一樣。註釋是寫給下一個讀者的(常常是三週後的你自己):
// 單行註釋——// 之後全被忽略。
/* 塊註釋
可以跨好幾行。 */
Console.WriteLine("comments are ignored"); // 這一段也是
經典模板:class Program + Main
老教程、教科書和大量生產程式碼用的是經典形態。它沒有過時——你會在大多數工作裡遇到它。兩種形態說的是同一件事:找到入口,執行它。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello from Main!");
}
}
逐塊拆:
using System;— 匯入標準名稱空間,讓你寫Console而不是System.Console。(瀏覽器引擎允許省略它。)class Program— 程式碼的命名容器。C# 是徹底的物件導向語言:所有程式碼都活在型別裡。static void Main(string[] args)— 入口點。static表示不用先造物件就能跑;void表示不返回東西;args裝命令列引數。
第一次讀輸入
程式開始有意思,是從它會反應開始的。Console.ReadLine() 讀一行文本——先在程式碼下方的輸入框裡填好,再執行:
Console.Write("What's your name? ");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
三行程式碼裡的兩個新概念:
string name = Console.ReadLine();— 宣告一個string型別的變數,把輸入存進去。$"Hello, {name}!"— 插值字串:{…}裡的所有東西都是表示式,會被求值並插進去。這是現代 C# 組裝文本的地道方式。