![]() |
1
6
C#没有任何确切的等价物。但是,您可以通过使用以下泛型类型约束来解决此问题:
new()约束表示有一个无参数构造函数—您没有,但我们将其设为私有,以便对消费者隐藏它。然后可以这样调用:
|
![]() |
2
0
对不起,你不能这样做。C#在道德上反对静态方法继承。GimmeOne方法将永远不会有MyBaseClass以外的任何类型,从子类1调用它并不重要——它仍然是“真正的”MyBaseClass调用。反射库可以进行这种构造,但是除了MyBaseClass之外,您永远不会从中得到任何东西。 如果您正在调用一个静态方法,那么您可能知道从哪个子类调用它。为每个子类创建不同的工厂方法。如果您真的试图通过实例来实现这一点,那么您可能应该使用非静态虚拟工厂方法(它将自动调用函数的最派生形式,这可能是您想要的)。 |
![]() |
David Sundström · 子视图在xcode游乐场中不工作 7 年前 |
|
James Wang · 为什么我的超类要调用我的子类方法? 7 年前 |
![]() |
J. Cal · 子类无法继承超类字段[重复] 7 年前 |
![]() |
Narwhal · 如何在UIView的子类中正确初始化传递的属性? 7 年前 |
![]() |
Sami · 超类行为未按预期应用于企鹅对象 7 年前 |
![]() |
SanMu · 对子类使用SKSpriteNode的属性 7 年前 |