基类和继承类的名称/前缀



我有一个主类,如以下(扩展类称为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,这样更有意义,是可能的吗?

正如在评论中提到的,您可能混合了组合和继承的原则

试试这个:

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

最新更新