![]() |
1
17
如果我没弄错的话
你可以这样称呼它:
|
![]() |
2
37
使用 curiously recurring template pattern
调用方法:
此解决方案增加了少量样板文件开销,因为必须用派生类模板化基类。 如果您的继承树有两个以上的级别,那么它也是有限制的。在这种情况下,您必须选择是传递template参数,还是将当前类型强加给静态方法调用的子对象。
|
![]() |
3
4
在类型上定义了静态方法。没有“这个”。您需要将其作为实例方法:
然后您可以执行以下操作:
|
![]() |
4
3
here . 它使用一个接口来统一所有派生类,并允许它们在不传递类型的情况下从基类调用相同的静态方法。
|
![]() |
5
0
只是猜测(未测试)
|
![]() |
6
0
您可以使方法成为非静态的,这样就可以通过多态性获得正确的类型,或者在子类中创建静态方法“重写”,例如。
然后,您的客户机代码可以调用派生类中的方法,以显式指示它想要的是派生类版本。如果需要,还可以将DerivedClass类型作为参数传递给基类方法,以提供通过派生类调用该方法的上下文。 |
![]() |
7
0
为什么不直接使用已有的方法呢? 如果你有
你可以看看
|
![]() |
8
0
我认为以下内容将适用于本案例(以及其他类似案例)。性能将不会太好,但如果这是罕见的,这不会是一个问题。 在特定情况下
希望$derivedOnStack中只有一个元素,但这将取决于应用程序的细节。需要一些实验。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 7 月前 |