在C#中,派生类无法直接访问基类的私有成员。私有成员是被封装在基类中,只能在基类内部访问。然而,可以通过以下两种方式间接地访问基类的私有成员:
class BaseClass
{
private int privateField = 10;
protected int protectedField = 20;
private void PrivateMethod()
{
Console.WriteLine("Private Method");
}
protected void ProtectedMethod()
{
Console.WriteLine("Protected Method");
}
}
class DerivedClass : BaseClass
{
public void AccessPrivateMember()
{
// 可以访问受保护的成员
Console.WriteLine(protectedField);
// 无法直接访问私有成员
// Console.WriteLine(privateField);
// 通过受保护的方法间接访问私有成员
ProtectedMethod();
}
}
class BaseClass
{
private int privateField = 10;
public void AccessPrivateMember()
{
Console.WriteLine(privateField);
}
}
class DerivedClass : BaseClass
{
public void AccessBasePrivateMember()
{
// 通过公共方法间接访问基类的私有成员
AccessPrivateMember();
}
}
以上是在C#中派生类访问私有成员的两种常见方式。根据具体的需求和设计,选择适合的方式来访问基类的私有成员。
领取专属 10元无门槛券
手把手带您无忧上云