2

假设我有这个类层次结构:

public abstract class Base {};
public class Child1 : Base {};
public class Child2 : Base {};

在某些时候,我将继承的类之一保留在其中IsolatedStorageSettings.ApplicationSettings,然后将其恢复为object. 如何在运行时确定它是否Child1Child2正确类型?

4

2 回答 2

2

你不能只用 is 吗?

if(myobject is Child1)
    var child1 = (Child1)myobject;
else if (myobject is Child2)
    ....
于 2012-12-26T14:00:01.727 回答
2

最简单的方法是使用as关键字进行转换并检查结果:

Base child;
child = mysteryObject as Child1;
if(child == null)
{
    // mysteryObject is Child2
    child = mysteryObject as Child2;
}
else
{
    // mysteryObject is Child1
}

您也可以改用is关键字。

于 2012-12-26T14:00:48.693 回答