Delen via


klasse (C#-verwijzing)

Declareer klassen met behulp van het class trefwoord, zoals wordt weergegeven in het volgende voorbeeld:

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

C# ondersteunt slechts één overname. Met andere woorden, een klasse kan alleen de implementatie overnemen van één basisklasse. Een klasse kan echter meer dan één interface implementeren.

De C#-taalreferentiedocumenten beschrijven de meest recent uitgebrachte versie van de C#-taal. Het bevat ook de eerste documentatie voor functies in openbare previews voor de aanstaande taalrelease.

De documentatie identificeert alle functies die voor het eerst zijn geïntroduceerd in de laatste drie versies van de taal of in de huidige openbare previews.

Aanbeveling

Raadpleeg het artikel over de versiegeschiedenis van de C#-taal om te achterhalen wanneer een functie voor het eerst is geïntroduceerd in C#.

Zie het artikel over overname in de sectie Basisprincipes voor meer informatie over klassen, interfaces en overname.

U kunt klassen rechtstreeks in een naamruimte declareren. Nest deze klassen niet binnen andere klassen. U kunt deze klassen maken public of internal. Klassen zijn internalstandaard.

U kunt klasleden declareren, inclusief geneste klassen, zoals public, protected internal, protected, internal, , privateof private protected. Leden zijn privatestandaard.

Zie Toegangsmodifiers voor meer informatie.

U kunt algemene klassen declareren met typeparameters. Zie Algemene klassen voor meer informatie.

Een klasse kan declaraties van de volgende leden bevatten:

Example

In het volgende voorbeeld ziet u hoe klassevelden, constructors en methoden worden gedeclareerd. Het toont ook objectexemplaren en het afdrukken van exemplaargegevens. In dit voorbeeld worden twee klassen gedeclareerd. De eerste klasse, Childbevat twee privévelden (name en age), twee openbare constructors en één openbare methode. De tweede klasse, StringTestbevat 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.
*/

Comments

U hebt alleen toegang tot de persoonlijke velden (name en age) via de openbare methode van de Child klasse. U kunt bijvoorbeeld de naam van het kind niet afdrukken vanuit de Main methode met behulp van een instructie zoals deze:

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

Het openen van privéleden van Child waaruit Main is alleen mogelijk als Main lid van de klas. Typen die zijn gedeclareerd in een klasse zonder toegangsaanpassing, zijn standaard ingesteld privateop, zodat de gegevensleden in dit voorbeeld nog steeds private zijn als het trefwoord wordt verwijderd. Ten slotte wordt voor het object dat is gemaakt met behulp van de parameterloze constructor (child3) het age veld standaard geïnitialiseerd op nul.

C#-taalspecificatie

Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.

Zie ook