Condividi tramite


base (Riferimenti per C#)

Aggiornamento: novembre 2007

La parola chiave base viene utilizzata per accedere ai membri della classe base dall'interno di una classe derivata per:

  • chiamare un metodo nella classe base sottoposto a override da un altro metodo;

  • specificare quale costruttore della classe base dovrà essere chiamato per creare istanze della classe derivata.

L'accesso a una classe base è consentito solo in un costruttore, in un metodo di istanza o in una funzione di accesso alle proprietà delle istanze.

È errato utilizzare la parola chiave base all'interno di un metodo statico.

Esempio

In questo esempio sia la classe base Person che la classe derivata Employee utilizzano un metodo denominato Getinfo. Mediante la parola chiave base è possibile chiamare il metodo Getinfo nella classe base dall'interno della classe derivata.

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
*/

Per ulteriori esempi, vedere new, virtual e override.

In questo esempio viene illustrato come specificare il costruttore della classe base che verrà chiamato durante la creazione di istanze di una classe derivata.

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)
*/

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 1.6.3 Classi base

  • 7.5.8 Accesso base

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Parole chiave di C#

this (Riferimenti per C#)

Altre risorse

Riferimenti per C#