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 implementaci pouze z jedné základní třídy. Třída však může implementovat více než jedno rozhraní. Následující tabulka uvádí 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 { }
Jeden, implementuje jedno rozhraní class ImplDerivedClass : BaseClass, IFace1 { }

Třídy, které deklarujete přímo v rámci oboru názvů, ne vnořené v jiných třídách, mohou být veřejné nebointerní. 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é chráněné. Členové jsou ve private 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 najdete 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 tisk dat instancí. V tomto příkladu jsou deklarovány dvě třídy. První třída obsahuje dvě Childprivátní pole (nameagea ), dva veřejné konstruktory a jednu veřejnou metodu. Druhá třída , StringTestse 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 (nameagea ) přístupná pouze prostřednictvím veřejné metody Child třídy . Například nelze vytisknout název podřízeného objektu z Main metody pomocí příkazu, jako je tento:

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

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

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

Nakonec si všimněte, že pro objekt vytvořený pomocí konstruktoru bez parametrů (child3) age se pole ve výchozím nastavení inicializovalo 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é