請使用 class 關鍵字宣告類別,如下範例所示:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
C# 僅支援單一繼承。 換句話說,類別只能繼承一個基類的實作。 不過,類別可以實作多個介面。
C# 語言參考資料記錄了 C# 語言最新版本。 同時也包含即將推出語言版本公開預覽功能的初步文件。
文件中標示了語言最近三個版本或目前公開預覽版中首次引入的任何功能。
小提示
欲查詢某功能何時首次在 C# 中引入,請參閱 C# 語言版本歷史的條目。
欲了解更多關於類別、介面與繼承的資訊,請參閱基礎部分的繼 承 條目。
你可以直接在命名空間內宣告類別。 不要把這些類別套疊在其他類別裡。 你可以把這些類別做成 public 或 internal。 預設情況下,類別為 internal。
你可以宣告類別成員,包括巢狀類別,分別為 public、 protected internal、 privateprotectedinternalprivate protected或 。 預設情況下,成員為 private。
如需詳細資訊,請參閱 存取修飾子。
您可以宣告具有類型參數的泛型類別。 如需詳細資訊,請參閱 泛型類別。
類別可以包含下列成員的宣告:
範例
下列範例示範宣告類別字段、建構函式和方法。 它也會示範物件具現化和列印實例數據。 在此範例中,會宣告兩個類別。 第一類 Child,包含兩個私有欄位(name 和 age)、兩個公共建構子,以及一個公共方法。 第二類 StringTest,包含 Main。
class Child
{
private int age;
private string name;
// Default constructor:
public Child()
{
name = "N/A";
}
// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}
// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}
class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);
// Create an object using the default constructor:
Child child3 = new Child();
// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
評論
你只能透過類別的Child公開方法存取私有欄位(name和age)。 例如,你無法用像這樣的語句從方法中列印子節點名稱 Main :
Console.Write(child1.name); // Error
只有當 Main 是該類別的成員時,才能存取 的ChildMain私有成員。 在類別中宣告且未使用存取修正符的類型預設為 private,因此即使關鍵字移除,資料成員仍 private 為 。 最後,對於使用無參數建構子child3() age 所建立的物件,欄位預設初始化為零。
C# 語言規格
如需詳細資訊,請參閱<C# 語言規格>。 語言規格是 C# 語法和使用方式的最終來源。