Sdílet prostřednictvím


class (Referenční dokumentace jazyka C#)

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

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

Jazyk C# podporuje pouze jednu 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í.

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

Další informace o třídách, rozhraních a dědičnosti najdete v článku o dědičnosti v části Základy.

Třídy můžete deklarovat přímo v rámci oboru názvů. Tyto třídy vnořujte do jiných tříd. Tyto třídy můžete nastavit buď public nebo internal. Ve výchozím nastavení jsou internaltřídy .

Můžete deklarovat členy třídy, včetně vnořených tříd, jako public, protected internal, protected, internal, , privatenebo private protected. Ve výchozím nastavení jsou privatečleny .

Další informace naleznete v tématu Přístupové modifikátory.

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 deklarování polí třídy, konstruktorů a metod. Ukazuje také vytváření instancí objektů a tisk dat instance. V tomto příkladu jsou deklarovány dvě třídy. První třída obsahuje Childdvě soukromá pole (name a age), dva veřejné konstruktory a jednu veřejnou metodu. Druhá třída , StringTestobsahuje 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

K privátním polím (name a age) můžete přistupovat pouze prostřednictvím veřejné metody Child třídy. Nemůžete například vytisknout jméno dítěte z Main metody pomocí příkazu, jako je tento:

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

Přístup k soukromým členům Child z Main je možný pouze v případě, že Main je členem třídy. Typy deklarované uvnitř třídy bez modifikátoru přístupu jsou výchozí private, takže datové členy v tomto příkladu jsou stále private , pokud je klíčové slovo odebráno. Nakonec pro objekt vytvořený pomocí konstruktoru bez parametrů (child3), age je pole inicializováno na nulu ve výchozím nastavení.

Specifikace jazyka C#

Další informace najdete ve specifikaci jazyka C#. Specifikace jazyka je konečným zdrojem syntaxe a použití jazyka C#.

Viz také