假设我有这个类层次结构:
public abstract class Base {};
public class Child1 : Base {};
public class Child2 : Base {};
在某些时候,我将继承的类之一保留在其中IsolatedStorageSettings.ApplicationSettings
,然后将其恢复为object
. 如何在运行时确定它是否Child1
为Child2
正确类型?
假设我有这个类层次结构:
public abstract class Base {};
public class Child1 : Base {};
public class Child2 : Base {};
在某些时候,我将继承的类之一保留在其中IsolatedStorageSettings.ApplicationSettings
,然后将其恢复为object
. 如何在运行时确定它是否Child1
为Child2
正确类型?
你不能只用 is 吗?
if(myobject is Child1)
var child1 = (Child1)myobject;
else if (myobject is Child2)
....
最简单的方法是使用as
关键字进行转换并检查结果:
Base child;
child = mysteryObject as Child1;
if(child == null)
{
// mysteryObject is Child2
child = mysteryObject as Child2;
}
else
{
// mysteryObject is Child1
}
您也可以改用is
关键字。