好的......在Objective C中,您可以使用'new this()'从基类中的静态方法新建一个子类,因为在静态方法中,'this'指的是类,而不是实例。当我第一次发现它并且我经常使用它时,这是一个非常酷的发现。
但是,在 C# 中这是行不通的。该死!
所以......有人知道我如何从静态基类方法中“新建”一个子类吗?
像这样的东西...
public class MyBaseClass{
string name;
public static Object GimmeOne(string name){
// What would I replace 'this' with in C#?
return new this(name);
}
public MyBaseClass(string name){
this.name = name;
}
}
// No need to write redundant constructors
public class SubClass1 : MyBaseClass{ }
public class SubClass2 : MyBaseClass{ }
public class SubClass3 : MyBaseClass{ }
SubClass1 foo = SubClass1.GimmeOne("I am Foo");
是的,我知道我可以(并且通常会)直接使用构造函数,但是我们特别需要调用基类上的共享成员,所以这就是我要问的原因。再一次,Objective C 让我来做这件事。希望 C# 也是如此。
所以……有接盘侠吗?