|
1
6
如果不使用反射或其他肮脏的技巧,就无法调用派生类的非虚方法。如果你想这样做,那很容易:
|
|
|
2
3
如果你控制着实例的创建过程,你可以通过继承你没有编写的类并添加接口来得到你想要的东西(不需要编写代码,编译器会将接口映射到现有的非虚拟方法)。 |
|
|
4
0
|
|
|
5
0
|
|
6
0
如果你使用的是Visual Studio 2008,你可以为基类创建一个扩展方法。在该扩展方法中,您将进行强制转换并调用子类的方法。只要您是从VS 2008内部编译的,这也应该适用于以2.0框架为目标的项目。借用其他建议的反射代码,您可以执行以下操作。..
|
|
|
7
-1
您忘记了子类方法定义中的“override”关键字。当某物被声明为“抽象”时,根据定义,它是虚拟的,因此在子类中,你需要在方法声明之前加上“override”关键字。因此,应该采取的措施如下:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |