在一个类中嵌套一个类,这种做法的一个作用就是可以在类外对类的私有成员变量进行设置,也可以调用私有方法。从而达到在类外访问私有成员和方法的目的。下面就是具体做法。
public class ClassA
{
private int state = -1;
public int State { get => state; set => state = value; }
private void AMethod()
{
Console.WriteLine("私有AMethod()方法被调用");
}
public class B
{
public void SetPrivateState(ClassA target,int newState)
{
target.state = newState;//通过嵌套类设置私有参数。
}
public void BMethod(ClassA target)
{
target.AMethod();
}
}
}
在Main函数中调用。
ClassA myObject = new ClassA();
Console.WriteLine($"myObject.State={myObject.State}");
ClassA.B myNestObject = new ClassA.B();
myNestObject.SetPrivateState(myObject, 3);
Console.WriteLine($"myObject.State={myObject.State}");
myNestObject.BMethod(myObject);
结果是: