Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare la base parola chiave per accedere ai membri della classe base dall'interno di una classe derivata. Utilizzalo se vuoi:
- Chiamare un metodo sulla classe base sottoposta a override da un altro metodo.
- Specificare il costruttore della classe base da chiamare durante la creazione di istanze della classe derivata.
È possibile accedere alla classe base solo in un costruttore, in un metodo di istanza e in una funzione di accesso alle proprietà dell'istanza. L'uso della base parola chiave dall'interno di un metodo statico genera un errore.
Il riferimento al linguaggio C# documenta la versione rilasciata più di recente del linguaggio C#. Contiene anche la documentazione iniziale per le funzionalità nelle versioni di anteprima pubblica per la prossima versione del linguaggio di programmazione.
La documentazione identifica tutte le funzionalità introdotte nelle ultime tre versioni della lingua o nelle anteprime pubbliche correnti.
Suggerimento
Per trovare quando una funzionalità è stata introdotta per la prima volta in C#, vedere l'articolo sulla cronologia delle versioni del linguaggio C#.
La classe base a cui si accede è la classe base specificata nella dichiarazione di classe. Ad esempio, se si specifica class ClassB : ClassA, si accede ai membri di ClassA da ClassB, indipendentemente dalla classe base di ClassA.
In questo esempio, sia la classe Person base che la classe Employee derivata hanno un metodo denominato GetInfo. Usando la base parola chiave , è possibile chiamare il GetInfo metodo della 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: {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 questo esempio viene illustrato come specificare il costruttore della classe base da chiamare durante la creazione di istanze di una classe derivata.
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)
*/
Per altri esempi, vedere new, virtual e override.
Specificazione del linguaggio C#
Per altre informazioni, vedere la specifica del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.