gpt4 book ai didi

c# - 派生类型和基类型区分

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:00 24 4
gpt4 key购买 nike

假设我们有以下代码

Base() { ... }

Derived : Base { ... }

Main()
{
var derivedInstance = new Derived();

if(derivedInstance is Base)
{
DoStuff();
}
}

我们的 if 语句返回 true。使用派生实例时,如何区分派(dispatch)生类型和基类型。

基本上,我希望上面的 if 语句返回 false,但不确定如何实现。

最佳答案

尝试

if (derivedInstance.GetType() == typeof(Base)) {
DoStuff();
}

然而,这看起来很奇怪。你想做什么?
在基类中定义一个虚方法怎么样:

class Base { 
public virtual void DoStuff() {
// actually do something
}
}
class Derived {
public virtual override void DoStuff() {
// do nothing
}
}

然后您可以在实例上调用 DoStuff(),而不检查其类型。

关于c# - 派生类型和基类型区分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9466676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com