在C#中,关键字 this 和 base 分别用于引用当前实例和基类实例的成员。它们的作用如下:
this 关键字:
- this 关键字用于引用当前实例的成员,包括字段、方法和属性。
当类的成员与局部变量同名时,可以使用 this 关键字来消除歧义,明确指示要访问的是成员而不是局部变量。 - 在构造函数中,可以使用 this 调用同一类的其他构造函数(称为构造函数重载)。
- this 也可以用于传递当前实例给其他方法或构造函数。
示例:
class MyClass
{
private int value;
public MyClass(int value)
{
this.value = value; // 使用 this 消除歧义,指示成员变量 value
}
public void PrintValue()
{
Console.WriteLine(this.value); // 使用 this 引用成员变量 value
}
}
base 关键字:
- base 关键字用于引用基类的成员,包括字段、方法和属性。
在派生类中,可以使用 base 调用基类的构造函数,以便执行基类的初始化逻辑。 - 在派生类中,可以使用 base 调用基类的方法,以便复用基类的实现。
示例:
class BaseClass
{
public void Print()
{
Console.WriteLine("BaseClass Print method");
}
}
class DerivedClass : BaseClass
{
public void PrintBase()
{
base.Print(); // 使用 base 关键字调用基类的方法
}
}
this 关键字用于当前实例,而 base 关键字用于基类实例。它们能够帮助你在类的成员和构造函数中正确引用所需的实例。