C# 程式包含一或多個檔案。 每個檔案都包含零個或多個命名空間。 命名空間包含類別、結構、介面、列舉和委派或其他命名空間等類型。 下列範例是 C# 程式的基本架構,其中包含所有這些元素。
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
上述範例會針對程序的進入點使用 最上層語句。 只有一個檔案可以有最上層語句。 程序的進入點是該檔案中程式文字的第一行。 在這種情況下,它是 Console.WriteLine("Hello world!");。
您也可以建立名為 Main 的靜態方法作為程序的進入點,如下列範例所示:
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
在此情況下,程式會在方法的 Main 左大括弧中啟動,也就是 Console.WriteLine("Hello world!");
建置和執行 C# 程式
C# 是 編譯 的語言。 在大部分 C# 程式中,您會使用 dotnet build 命令將來源檔案群組編譯成二進位套件。 然後,您可以使用 dotnet run 命令來執行程式。 (您可以簡化此程式,因為 dotnet run 在必要時先編譯程式再執行。這些工具支援豐富的組態選項和命令行參數語言。
dotnet.NET SDK 中包含的命令行介面 (CLI)提供許多工具來產生和修改 C# 檔案。
從 C# 14 和 .NET 10 開始,您可以建立 檔案型應用程式,以簡化建置和執行 C# 程式。 您可以使用 dotnet run 命令來執行包含在單 *.cs 一檔案中的程式。 例如,如果下列代碼段儲存在名為 hello-world.cs的檔案中,您可以輸入 dotnet run hello-world.cs來執行它:
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
程式的第一行包含 Unix 殼層的 #! 序列。 CLI 的位置 dotnet 可能會因不同的發行版而有所不同。 在任何 Unix 系統上,如果您在 C# 檔案上設定 execute (+x) 許可權,您可以從命令行執行 C# 檔案:
./hello-world.cs
這些程式的來源必須是單一檔案,但否則所有 C# 語法都是有效的。 您可以使用檔案型應用程式來執行小型命令列公用程式、原型或其他實驗。 檔案型應用程式允許設定建置系統的 前置處理器指示詞 。
表達式和語句
C# 程式是使用 表示式 和 語句所建置。 表達式會產生值,而 語句會執行動作:
表達式是評估為單一值的值、變數、運算符和方法呼叫的組合。 表達式會產生結果,而且可在預期值的位置使用。 下列範例是表示式:
-
42(字面值) -
x + y(算術運算) -
Math.Max(a, b)(方法呼叫) -
condition ? trueValue : falseValue(條件表示式) -
new Person("John")(物件建立)
語句是執行動作的完整指令。 語句不會傳回值;相反地,它們會控制程式流程、宣告變數或執行作業。 下列範例是句子:
-
int x = 42;(宣告聲明) -
Console.WriteLine("Hello");(運算式語句 - 包裹方法呼叫運算式) -
if (condition) { /* code */ }(條件語句) -
return result;(return 語句)
主要區別是:表達式會評估為值,而語句則執行動作。 某些建構,例如方法呼叫,可以是兩者。 例如,Math.Max(a, b) 在 int result = Math.Max(a, b); 中使用時是表達式,但當單獨寫成 Math.Max(a, b); 時會變成表達式語句。
如需查看有關敘述的詳細資訊,請參閱敘述。 如需表達式主體成員和其他表達式功能的相關信息,請參閱 表達式主體成員。
相關區段
您會在基本概念指南的 類型 一節中了解這些程式元素:
C# 語言規格
如需詳細資訊,請參閱 C# 語言規格中 的基本概念。 語言規格是 C# 語法和使用方式的最終來源。