亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在派生嵌套類中調用父函數

在派生嵌套類中調用父函數

C#
阿晨1998 2023-07-22 16:31:36
如何在類中調用類Run()中的函數?ControllerI2Cclass Program{    public class Controller    {        public void Run()        {        }    }    public class ChildController : Controller    {    }    public class LowLevelController : ChildController    {        private class I2C        {            public I2C()            {            }            // Want to call Controller.Run() from this level        }        public void Computate()        {            base.Run();        }    }}
查看完整描述

2 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

選項1


實現此目的的一種方法是在 I2C 中公開接受操作的方法。這將允許 I2C 實例(它是LowLevelController 中定義的私有類)調用 Controller.Run。例如,


 private class I2C

 {

     public I2C()

     {

     }


     public void RunBase(Action execute)

     {

        execute.Invoke();

     }

 }

現在您可以將 RunBase 執行為


 public void Computate()

 {

    var i2c = new I2C();

    i2c.RunBase(()=>base.Run());

 }

選項2


另一種選擇是將 LowLevelController 的實例傳遞給 I2C 并調用 Controller.Run 方法


例子,


public class LowLevelController : ChildController

{

    private class I2C

    {

       private LowLevelController _parent;

       public I2C(LowLevelController parent)

       {

          _parent = parent;

       }


       public void RunBase()

       {

          _parent.Run();

       }

    }


     public void Computate()

     {

         var i2c = new I2C(this);

         i2c.RunBase();

     }

}


查看完整回答
反對 回復 2023-07-22
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我想你想要的很簡單:


public class LowLevelController : ChildController {


    private class I2C {


        public I2C(LowLevelController outerInstance) {

            OuterInstance = outerInstance;

        }


        private LowLevelController OuterInstance { get; }


        private void DoSomething() {

            OuterInstance.Run();

        }


    }


}


查看完整回答
反對 回復 2023-07-22
  • 2 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號