clothes經典性“hello, world”程序可以寫為:
using System;
class Hello
{
static void Main() {
Console.WriteLine("hello, world");
}
}
C# 程序的源代碼通常存儲在一個或多個以 .cs 為文件擴展名的文本文件(如 hello.cs)中。可以通過 Visual Studio .Net 所提供的命令行編譯器,使用以下命令行指令來編譯此程序:
csc hello.cs
它產生一個名為 hello.exe 的應用程序。當此應用程序運行時,它產生的輸出是:
hello, world
仔細觀察此程序可以發現:
“using System;”指令引用一個名為 System 的命名空間,它由 Microsoft .Net Framework 類庫定義。此命名空間包含 Main 方法中引用的 Console 類。命名空間提供了一種分層方法來組織一個或多個程序中的各種元素。用“using”指令指定一個命名空間後,該命名空間中的所有成員均可直接被引用。所以,在“hello, world”程序中,可直接使用 Console.WriteLine(而不必使用 System.Console.WriteLine)。
Main 方法是 Hello 類的成員。它具有 static 修飾符,因此 Main 方法是相對於類 Hello 本身而不是相對於此類的實例。
應用程序的入口點(即當程序開始運行時首先被調用的方法)總是名為 Main 的靜態方法。
“hello, world”輸出依靠類庫實現。C# 語言本身不提供類庫,它使用公共的類庫(Visual Basic .NET 和 Visual C++ .Net 也使用它)。
對 C 和 C++ 開發人員而言,值得注意的是一些“沒有”出現在“hello, world”程序中的東西。
該程序中的 Main 方法不是全局的。C# 不支持全局級別的方法和變量;這類元素總是包含在類型聲明(如類聲明和結構聲明)中。
該程序沒有使用“::”運算符和“->”運算符。在 C# 中,“::”根本不是運算符,而“->”運算符僅在一小部分程序中使用,即那些涉及不安全代碼的程序。分隔符“.”在復合名稱中使用,如 Console.WriteLine。
該程序沒有包含前向聲明。C# 中聲明出現的順序並不重要,所以不需要作前向聲明。
該程序沒有使用 #include 導入程序文本。程序間的依賴項通過符號而不是文本來控制。這樣就消除了由多種語言編寫的應用程序之間的障礙。例如,Console 類不需要用 C# 編寫。