|
|
1
6
C#没有任何确切的等价物。但是,您可以通过使用以下泛型类型约束来解决此问题:
new()约束表示有一个无参数构造函数—您没有,但我们将其设为私有,以便对消费者隐藏它。然后可以这样调用:
|
|
|
2
0
对不起,你不能这样做。C#在道德上反对静态方法继承。GimmeOne方法将永远不会有MyBaseClass以外的任何类型,从子类1调用它并不重要——它仍然是“真正的”MyBaseClass调用。反射库可以进行这种构造,但是除了MyBaseClass之外,您永远不会从中得到任何东西。 如果您正在调用一个静态方法,那么您可能知道从哪个子类调用它。为每个子类创建不同的工厂方法。如果您真的试图通过实例来实现这一点,那么您可能应该使用非静态虚拟工厂方法(它将自动调用函数的最派生形式,这可能是您想要的)。 |