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();
}
}

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();
}
}
}
- 2 回答
- 0 關注
- 152 瀏覽
添加回答
舉報