Cette documentation est archivée et n’est pas conservée.

base (Référence C#)

Le mot clé base sert à accéder aux membres de la classe de base à partir d'une classe dérivée :

  • Appelle une méthode de la classe de base qui a été substituée par une autre méthode.

  • Spécifie quel constructeur de classe de base devrait être appelé lors de la création d'instances de la classe dérivée.

L'accès à une classe de base n'est autorisé que dans un constructeur, une méthode d'instance ou un accesseur de propriété d'instance.

Le fait d'utiliser le mot clé base à partir d'une méthode statique constitue une erreur.

Dans cet exemple, la classe de base Person et la classe dérivée Employee possèdent toutes les deux une méthode nommée Getinfo. En utilisant le mot clé base, il est possible d'appeler la méthode Getinfo de la classe de base à partir de la classe dérivée.

// keywords_base.cs
// Accessing base class members
using System;
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();
    }
}

Cet exemple indique comment spécifier le constructeur de classe de base appelé lors de la création d'instances d'une classe dérivée.

// keywords_base2.cs
using System;
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);
    }
}

 
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG

Pour d'autres exemples, consultez new, virtual et override.

 
in BaseClass()
in BaseClass(int i)

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 1.6.3 Classes de base

  • 7.5.8 Accès de base

Afficher: