我有一個主類,如下所示(帶有擴展類Keys)
public class Engine : Keys, IEngine, IDisposable
{
private readonly Network _network;
public Engine(bool useMainNet = false) : base(useMainNet)
{
_network = useMainNet ? Network.Main : Network.TestNet;
}
public Network GetCurrentNetwork() => _network;
該類Keys具有GenerateKeys()如下功能
public class Keys : IDisposable, IKeys
{
public Keys(bool useMainNet = false)
{
_network = useMainNet ? Network.Main : Network.TestNet;
}
public string GenerateKeys()
{
return "KEY_GEN";
}
}
問題是我可以按如下方式呼叫該方法
using (Engine engine = new(true))
{
engine.GenerateKeys();
}
它作業正常,但我想要的是以下
using (Engine engine = new(true))
{
engine.Keys.GenerateKeys();
// OR engine.Keys().GenerateKeys();
}
所以我想要Main_Method.Sub_Method.Function,這樣更有意義,有可能嗎?
uj5u.com熱心網友回復:
正如評論中提到的,您可能正在混合組合和繼承的原則
嘗試這個:
public class Engine : IEngine, IDisposable
{
private readonly Network _network;
public Engine(bool useMainNet = false) : base(useMainNet)
{
_network = useMainNet ? Network.Main : Network.TestNet;
}
public Network GetCurrentNetwork() => _network;
// by property
public Keys Keys => new Keys();
// by method (with parameters)
public Keys Keys(bool useMainNet = false) => new Keys(useMainNet);
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/532108.html
標籤:C#遗产
上一篇:python類中的類C前向宣告
