base (C#-Referenz)

Aktualisiert: November 2007

Mit dem base-Schlüsselwort kann innerhalb einer abgeleiteten Klasse auf Member der Basisklasse zugegriffen werden:

  • Rufen Sie eine Methode der Basisklasse auf, die durch eine andere Methode überschrieben wurde.

  • Geben Sie an, welcher Konstruktor der Basisklasse beim Erstellen von Instanzen der abgeleiteten Klasse aufgerufen werden soll.

Ein Zugriff auf eine Basisklasse ist nur in einem Konstruktor, einer Instanzenmethode oder einem Instanzeneigenschaften-Accessor zulässig.

Das base-Schlüsselwort darf nicht innerhalb einer statischen Methode verwendet werden.

Beispiel

In diesem Beispiel verfügen sowohl die Person-Basisklasse als auch die abgeleitete Employee-Klasse über eine Methode mit der Bezeichnung Getinfo. Mithilfe des base-Schlüsselworts kann die Getinfo-Methode für die Basisklasse aus der abgeleiteten Klasse aufgerufen werden.

public class Person
{
    protected string ssn = "444-55-6666";
    protected string name = "John L. Malgraine";

    public virtual void GetInfo()
    {
        Console.WriteLine("Name: {0}", name);
        Console.WriteLine("SSN: {0}", ssn);
    }
}
class Employee : Person
{
    public string id = "ABC567EFG";
    public override void GetInfo()
    {
        // Calling the base class GetInfo method:
        base.GetInfo();
        Console.WriteLine("Employee ID: {0}", id);
    }
}

class TestClass
{
    static void Main()
    {
        Employee E = new Employee();
        E.GetInfo();
    }
}
/*
Output
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG
*/

Weitere Beispiele finden Sie unter new, virtual und override.

In diesem Beispiel wird gezeigt, wie der aufgerufene Basisklassenkonstruktor angegeben werden kann, wenn Instanzen einer abgeleiteten Klasse erstellt werden.

public class BaseClass
{
    int num;

    public BaseClass()
    {
        Console.WriteLine("in BaseClass()");
    }

    public BaseClass(int i)
    {
        num = i;
        Console.WriteLine("in BaseClass(int i)");
    }

    public int GetNum()
    {
        return 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)
*/

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.6.3 Basisklassen

  • 7.5.8 Basiszugriff

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

this (C#-Referenz)

Weitere Ressourcen

C#-Referenz