Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Use la base palabra clave para acceder a los miembros de la clase base desde dentro de una clase derivada. Úselo si desea:
- Llame a un método en la clase base invalidada por otro método.
- Especifique a qué constructor de clase base se va a llamar al crear instancias de la clase derivada.
Solo puede tener acceso a la clase base en un constructor, en un método de instancia y en un descriptor de acceso de propiedad de instancia. El uso de la base palabra clave desde dentro de un método estático genera un error.
La documentación de referencia del lenguaje C# cubre la versión más reciente publicada del lenguaje C#. También contiene documentación inicial sobre las características de las versiones preliminares públicas de la próxima versión del lenguaje.
La documentación identifica cualquier característica introducida por primera vez en las últimas tres versiones del idioma o en las versiones preliminares públicas actuales.
Sugerencia
Para buscar cuándo se introdujo por primera vez una característica en C#, consulte el artículo sobre el historial de versiones del lenguaje C#.
La clase base a la que tiene acceso es la clase base que especifique en la declaración de clase. Por ejemplo, si especifica class ClassB : ClassA, tiene acceso a los miembros de ClassA desde ClassB, independientemente de la clase base de ClassA.
En este ejemplo, tanto la clase Person base como la clase Employee derivada tienen un método denominado GetInfo. Mediante la base palabra clave , puede llamar al GetInfo método de la clase base desde dentro de la clase derivada.
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
*/
En este ejemplo se muestra cómo especificar el constructor de clase base al que se va a llamar al crear instancias de una clase derivada.
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)
*/
Para ver más ejemplos, consulte new, virtual y override.
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es el origen definitivo de la sintaxis y el uso de C#.