class (Referenční dokumentace jazyka C#)

Třídy jsou deklarovány pomocí klíčového slova class , jak je znázorněno v následujícím příkladu:

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

Poznámky

V jazyce C# je povolena pouze jedna dědičnost. Jinými slovy třída může dědit pouze implementaci pouze z jedné základní třídy. Třída však může implementovat více než jedno rozhraní. V následující tabulce jsou uvedeny příklady dědičnosti tříd a implementace rozhraní:

Dědičnost Příklad
Žádná class ClassA { }
Jednoduché class DerivedClass : BaseClass { }
Žádné, implementuje dvě rozhraní class ImplClass : IFace1, IFace2 { }
Single, implementuje jedno rozhraní. class ImplDerivedClass : BaseClass, IFace1 { }

Třídy, které deklarujete přímo v rámci oboru názvů, nikoli vnořené v rámci jiných tříd, mohou být buď veřejné , nebo interní. Třídy jsou internal ve výchozím nastavení.

Členy třídy, včetně vnořených tříd, mohou být Veřejná, chráněná interní, chráněná, interní, soukrománebo soukromá. Členy jsou private ve výchozím nastavení.

Další informace najdete v tématu modifikátory přístupu.

Můžete deklarovat obecné třídy, které mají parametry typu. Další informace naleznete v tématu Obecné třídy.

Třída může obsahovat deklarace následujících členů:

Příklad

Následující příklad ukazuje deklaraci polí třídy, konstruktorů a metod. Ukazuje také vytváření instancí objektů a data instance tisku. V tomto příkladu jsou deklarovány dvě třídy. První třída obsahuje dvě privátní pole ( a ), dva veřejné konstruktory a Child jednu veřejnou name age metodu. Druhá třída StringTest , se používá k obsahují 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.
*/

Komentáře

Všimněte si, že v předchozím příkladu jsou privátní pole ( a ) přístupná pouze prostřednictvím veřejné name age metody třídy Child . Například nelze vytisknout název podřízeného objektu z metody Main pomocí příkazu, jako je tento:

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

Přístup k soukromým Child členům Main z by byl možný pouze Main v případě, že by byl členem třídy.

Typy deklarované uvnitř třídy bez modifikátoru přístupu ve výchozím nastavení na , takže datové členy v tomto příkladu by stále private private byly, pokud by bylo klíčové slovo odebráno.

Nakonec si všimněte, že pro objekt vytvořený pomocí konstruktoru bez parametrů ( ) se pole ve výchozím nastavení inicializovalo child3 age na nulu.

specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také