📅  最后修改于: 2023-12-03 15:30:16.615000             🧑  作者: Mango
在 C# 中,base 关键字表示基类(父类)中的成员访问,用于访问基类中的方法、属性和字段。
当创建子类的实例时,子类的构造函数会自动调用父类的无参构造函数。 如果您要调用父类的构造函数,则可以使用以下语法:
class ParentClass
{
public ParentClass(string message) { }
}
class ChildClass : ParentClass
{
public ChildClass(string message) : base(message) { }
}
在子类的构造函数中使用 base(message)
调用父类的有参构造函数并传递消息参数。
在子类中,可以使用 base 关键字访问基类的属性、方法和字段,如下所示:
class ParentClass
{
protected string message = "Hello World";
public void Display() { Console.WriteLine(message); }
}
class ChildClass : ParentClass
{
public void DisplayAndChange()
{
Console.WriteLine("Before changing: {0}", message); // 访问基类的字段
base.message = "Hello Universe"; // 修改基类的字段
base.Display(); //调用基类的方法
}
}
在子类的方法 DisplayAndChange
中,使用 base.message
来访问基类中的字段,并使用 base.Display()
调用基类的方法。 您也可以通过 base 关键字来访问和修改基类中的属性和方法。
在 C# 中,您可以将 base 关键字作为参数传递给方法。 以下示例演示了如何使用 base 关键字将子类中的方法传递给基类:
class ParentClass
{
public void MethodA() { Console.WriteLine("MethodA in ParentClass"); }
public void MethodB() { Console.WriteLine("MethodB in ParentClass"); }
}
class ChildClass : ParentClass
{
public new void MethodA() { Console.WriteLine("MethodA in ChildClass"); }
public void UseMethodB()
{
base.MethodB(); // 调用基类的方法
base.MethodA(); // 需要将子类中的 MethodA 作为参数传递给基类
}
}
class Program
{
static void Main(string[] args)
{
ChildClass cc = new ChildClass();
cc.UseMethodB();
}
}
在子类的方法 UseMethodB
中,我们使用 base.MethodB()
来调用基类的方法,并使用 base.MethodA()
来将子类中的 MethodA
作为参数传递给基类。
在 C# 中,base 关键字用于访问基类中的成员。 您可以使用 base 关键字来调用父类中的构造函数、访问和修改基类的属性、方法和字段,并将子类中的方法作为参数传递给基类中。