gpt4 book ai didi

C#:如何确定接口(interface)变量的类型?

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

我有一个接口(interface)变量 IAction nextAction。

我想看看 nextAction 是否有一个具体的实现,但是当我尝试以下操作时没有成功:

IAction nextAction = GetNextAction();

if (nextAction.GetType() != typeof(LastAction)) {
// do something...
}

关于如何确定 IAction 变量 nextAction 的具体类型的任何想法?

最佳答案

我相信"is"是您正在寻找的。一般来说:

if (nextAction is ButtonClickedAction) {
...
}

在第二次检查时,您似乎正在尝试查看操作是否已更改
private void DetermineIfActionChanged(IAction lastAction)
{
IAction nextAction = GetNextAction();
if (nextAction.GetType() != lastAction.GetType())
{
DoSomethingAwesome();
}
}

这种方法的唯一问题是,如果您有某种想要尊重的继承并且您不关心精确匹配(例如,EventArg 与 ClickEventArg 将被视为同一类型,因为 ClickEventArg 派生自 EventArg)。如果是这样的话 this SO answer might be of some help .

关于C#:如何确定接口(interface)变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697732/

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