Abe*_*Abe 1 c# casting type-conversion
我有一个接口变量IAction nextAction.
我想看看nextAction是否具体实现,但是当我尝试以下操作时失败:
IAction nextAction = GetNextAction();
if (nextAction.GetType() != typeof(LastAction)) {
// do something...
}
Run Code Online (Sandbox Code Playgroud)
关于如何确定IAction变量nextAction的具体类型的任何想法?
我相信"是"就是你要找的东西.一般来说:
if (nextAction is ButtonClickedAction) {
...
}
Run Code Online (Sandbox Code Playgroud)
在第二次检查时,看起来您正在尝试查看操作是否已更改
private void DetermineIfActionChanged(IAction lastAction)
{
IAction nextAction = GetNextAction();
if (nextAction.GetType() != lastAction.GetType())
{
DoSomethingAwesome();
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法的唯一问题是,如果你有某种类型的继承你想要尊重并且你不关心完全匹配(例如,自从ClickAventArg派生自EventArg以来,EventArg与ClickEventArg都被认为是相同的类型).如果是这种情况,这个SO答案可能会有所帮助.
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |