Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik het base trefwoord om toegang te krijgen tot leden van de basisklasse vanuit een afgeleide klasse. Gebruik dit als u het volgende wilt doen:
- Roep een methode aan op de basisklasse die wordt overschreven door een andere methode.
- Geef op welke constructor met basisklasse moet worden aangeroepen bij het maken van exemplaren van de afgeleide klasse.
U hebt alleen toegang tot de basisklasse in een constructor, in een instantiemethode en in een exemplaareigenschapstoegangsor. Als u het base trefwoord vanuit een statische methode gebruikt, wordt er een fout gegenereerd.
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#.
De basisklasse die u opent, is de basisklasse die u opgeeft in de klassedeclaratie. Als u bijvoorbeeld opgeeft class ClassB : ClassA, opent u de leden van ClassA vanuit ClassB, ongeacht de basisklasse van ClassA.
In dit voorbeeld hebben zowel de basisklasse Person als de afgeleide klasse Employee een methode met de naam GetInfo. Met behulp van het base trefwoord kunt u de GetInfo methode van de basisklasse aanroepen vanuit de afgeleide klasse.
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";
public virtual void GetInfo()
{
Console.WriteLine($"Name: {name}");
Console.WriteLine($"SSN: {ssn}");
}
}
class Employee : Person
{
public readonly string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine($"Employee ID: {id}");
}
}
class TestClass
{
static void Main()
{
Employee E = new Employee();
E.GetInfo();
}
}
/*
Output
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG
*/
In dit voorbeeld ziet u hoe u de basisklasseconstructor opgeeft die moet worden aangeroepen bij het maken van exemplaren van een afgeleide klasse.
public class BaseClass
{
private int num;
public BaseClass() =>
Console.WriteLine("in BaseClass()");
public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int i)");
}
public int GetNum() => num;
}
public class DerivedClass : BaseClass
{
// This constructor will call BaseClass.BaseClass()
public DerivedClass() : base() { }
// This constructor will call BaseClass.BaseClass(int i)
public DerivedClass(int i) : base(i) { }
static void Main()
{
DerivedClass md = new DerivedClass();
DerivedClass md1 = new DerivedClass(1);
}
}
/*
Output:
in BaseClass()
in BaseClass(int i)
*/
Zie nieuw, virtueel en override voor meer voorbeelden.
C#-taalspecificatie
Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.