我有一个基类,有大量的派生类,基类有几个构造函数。在所有派生类中,我必须实现空构造函数来将参数转发给基构造函数。是否有可能以某种方式告诉C#使用派生的构造函数?如何避免在派生类中实现空构造函数?
例如,如果使用这个基类。
class BaseTool
{
public BaseTool(string Arg1, string Arg2)
{
// do stuff.
}
public BaseTool(string Arg1)
{
// do stuff.
}
public BaseTool(int Arg1)
{
// do stuff.
}
}
我会实现所有这些参数的构造函数上面,然后调用: base(...)
将它们转发到派生类。这导致了很多具有空构造函数的类。看起来像很多浪费的代码。
我唯一能想到的是制作静态方法而不是实例构造函数。例如'public static T Create(string Arg1,string Arg2)其中T:BaseTool,new(){var instance = new T();/*做些东西,比如说。 * /返回实例; }'。这可以称为'var newDT = BaseTool.Create (“foo”,“bar”);'。 –
@JeppeStigNielsen:如果您将该帖子发布为答案,我会对其投诉:-) – dtb
@dtb我发布为答案。 –