我有一个基类,它只有一个通用参数。然后我有几个继承自这个基类的类。子类是否有一种简单的方式可以从基类继承工厂?
示例
class BaseClass<T>
{
T Value {get; set;}
string Name {get; set;}
public static BaseClass<T> Factory(T Value)
{
return new BaseClass<T>(Value);
}
}
class ChildClass : BaseClass<int>
{
public void Test()
{
// I want this below to work
// but Factory() returns a BaseClass
ChildClass bs = ChildClass.Factory(10);
}
}
我已经在代码中注明了我的意图。我能想到一种克服这个问题的方法,就是在BaseClass或SubClass中添加一个隐式转换运算符,将BaseClass转换为ChildClass。
我也可以直接将工厂添加到ChildClass,但这违背了继承的目的。
有没有更好、更标准的方法来解决这个问题呢?
Test()
函数内进行类型转换? - Alastair PittsFactory()
应该声明为静态的吗? - Mark CidadeFactory
方法被声明为实例方法,但被使用时却像静态方法。 - Ani