class OutterClass
{
public void OutterMethod()
{
Console.WriteLine("Outter method");
}
public class InnerClass
{
public void InnerMethod()
{
Console.WriteLine("Inner method");
}
}
}
OutterClass outcls = new();
outcls.OutterMethod();
OutterClass.InnerClass incls = new();
incls.InnerMethod();
我想呼叫OutterMethod()which 是OutterClassfrom InnerClasswhich 是內部類的方法OutterClass。那么,我該怎么做呢?
uj5u.com熱心網友回復:
同意維克托;如果外部類的方法不是靜態的,那么它必須在實體上呼叫。這與任何其他“在實體上呼叫方法”場景沒有什么不同;希望呼叫該方法的類代碼必須知道要呼叫該方法的實體。如果其他地方的一些其他代碼同時創建了外部和內部,那么它是唯一知道兩者的東西,并負責將外部實體提供給內部實體,以便內部代碼可以了解外部并呼叫其上的方法:
class OutterClass
{
public void OutterMethod()
{
Console.WriteLine("Outter method");
}
public class InnerClass
{
private OuterClass _outer;
public InnerClass(OuterClass outer){
_outer = outer;
}
public void InnerMethod()
{
_outer.OutterMethod();
Console.WriteLine("Inner method");
}
}
}
內部實體如何了解外部取決于您:建構式引數、屬性、設定方法。您選擇哪個取決于外部是否對內部的功能至關重要,因此永遠不應該制作內部沒有傳遞外部(使用建構式),或者在內部生成后是否可以更改外部,但是“我什么時候應該使用建構式 vs prop vs x?” 超出了這個問題的范圍
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408960.html
標籤:
