可以说我们有以下代码
Base() { ... }
Derived : Base { ... }
Main()
{
var derivedInstance = new Derived();
if(derivedInstance is Base)
{
DoStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
我们返回的if语句返回true.当我使用派生实例时,如何区分派生类型和基类型.
基本上,我希望上面的if语句返回false,但不知道如何完成此操作.
尝试
if (derivedInstance.GetType() == typeof(Base)) {
DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
但是,这看起来很奇怪.你想做什么?
如何在基类中定义虚拟方法:
class Base {
public virtual void DoStuff() {
// actually do something
}
}
class Derived {
public virtual override void DoStuff() {
// do nothing
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以调用DoStuff()实例,而不检查它的类型.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |