在一個類中嵌套一個類,這種做法的一個作用就是可以在類外對類的私有成員變量進行設置,也可以調用私有方法。從而達到在類外訪問私有成員和方法的目的。下面就是具體做法。
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 a = new ClassA();//通過嵌套類調用私有方法。
a.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();
結果是: