共用方式為


類別 (C# 參考)

類別是使用 class 關鍵字宣告,如下列範例所示:

class TestClass
{
    // Methods, properties, fields, events, delegates 
    // and nested classes go here.
}

備註

只有單一繼承在 C# 中啟用。 換句話說,類別只能從一個基底類別繼承實作。 但是,類別可以實作一個以上的介面。 下表顯示類別繼承和介面實作的範例:

繼承

範例

None

class ClassA { }

Single

class DerivedClass: BaseClass { }

無繼承,實作兩個介面

class ImplClass: IFace1, IFace2 { }

單一繼承,實作一個介面

class ImplDerivedClass: BaseClass, IFace1 { }

您可以直接在命名空間中宣告的類別,而不是在其他類別內,可能是 公用內部。 類別預設是 internal 。

類別成員,包括巢狀類別,可以是 protected internal、 公用保護內部私用。 預設成員是 私用

如需詳細資訊,請參閱存取修飾詞 (C# 程式設計手冊)

您可以宣告具有型別參數的泛型類別。 如需詳細資訊,請參閱 泛型類別

類別可以包含下列成員的宣告:

範例

下列範例示範類別欄位、建構函式和方法的宣告。 它也示範物件執行個體化 (Instantiation) 和列印執行個體資料。 在這個範例裡,宣告了兩個類別,其中 Child 類別包含兩個私用 (Private) 欄位 (name 和 age) 和兩個公用 (Public) 方法。 第二個類別 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.
*/

註解

請注意,在上述範例裡,私用欄位 (name 和 age) 只能經由 Child 類別的公用方法來存取。 例如,使用以下陳述式時,您就不能從 Main 方法中輸出小孩的名字:

Console.Write(child1.name);   // Error

只有在 Main 為類別成員的情況下,才可以從 Main 存取 Child 的私用成員。

型別在類別內宣告,而不使用存取修飾詞會預設值為 private,因此,在這個範例中的資料成員會是 private ,如果移除關鍵字。

最後,請注意對於使用預設建構函式 (child3) 建立的物件,年齡欄位預設會初始化為零。

C# 語言規格

如需詳細資訊,請參閱<C# 語言規格>。語言規格是 C# 語法及用法的限定來源。

請參閱

參考

C# 關鍵字

參考類型 (C# 參考)

概念

C# 程式設計手冊

其他資源

C# 參考