假设我有这个类层次结构:
public abstract class Base {};
public class Child1 : Base {};
public class Child2 : Base {};
在某些时候,我会在IsolatedStorageSettings.ApplicationSettings
中保留一个继承的类,然后将其作为object
返回。我怎样才能知道它是Child1
还是Child2
并在运行时输入正确的类型?
答案 0 :(得分:2)
你能不能只使用?
if(myobject is Child1)
var child1 = (Child1)myobject;
else if (myobject is Child2)
....
答案 1 :(得分:2)
最简单的方法是使用as
关键字投射它并检查结果:
Base child;
child = mysteryObject as Child1;
if(child == null)
{
// mysteryObject is Child2
child = mysteryObject as Child2;
}
else
{
// mysteryObject is Child1
}
您也可以使用is
关键字。