třídy (C#-Reference)
Třídy jsou deklarovány pomocí klíčového slova class, jak ukazuje následující příklad:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
Poznámky
Na rozdíl od jazyka C++ je povolen pouze jeden dědičnosti v jazyce C#.Jinými slovy třída může zdědit provádění pouze jeden základní třídy.Třída však lze implementovat více rozhraní.Následující tabulka uvádí příklady dědičnost třídy a implementaci rozhraní:
Dědičnost |
Příklad |
---|---|
Žádná |
class ClassA { } |
Jednoduché |
class DerivedClass: BaseClass { } |
Žádný, implementuje dvě rozhraní |
class ImplClass: IFace1, IFace2 { } |
Jeden implementuje jednoho rozhraní. |
class ImplDerivedClass: BaseClass, IFace1 { } |
Úrovně přístupu chráněné a soukromé jsou povoleny pouze na vnořené třídy.
Můžete také deklarovat obecný tříd, které mají parametry typu; Viz Generic třídy Další informace.
Třída může obsahovat prohlášení následující členy:
Příklad
Následující příklad ukazuje deklarující třída polí konstruktory a metod.Rovněž ukazuje vytvoření instance objektu a tisk dat instance.V tomto příkladu jsou deklarovány dvě třídy, Child třídy, která obsahuje dvě pole private (name a age) a dvě veřejné metody.Druhé třídy StringTest, obsahuje 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
Oznámení v předchozím příkladu, který pole private (name a age) lze přistupovat pouze prostřednictvím veřejné metody Child třídy.Jméno dítěte, například nelze tisknout z Main metoda, pomocí příkazu, například takto:
Console.Write(child1.name); // Error
Přístup k soukromým členové Child z Main by být možné pouze pokud Main byla členem třídy.
Typy deklarované uvnitř třídy bez Modifikátor přístupu výchozí private, takže členové data v tomto příkladu by stále private Pokud byly odebrány klíčové slovo.
Všimněte si, že pro objekt vytvořený pomocí výchozí konstruktor (child3), stáří pole byla inicializována na nulu jako výchozí.
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.