[英]oop Check if return type is parent or child class
假设我有这个课程:
public class Parent
{
public string Name {get; set;}
}
和这个继承自Parent的类:
public class Child : Parent
{
public string Toys {get; set;}
}
在一些随机类中,我有一个返回Parent的函数:
public class SomeClass
{
public Parent GetPerson()
{
if (whatever)
{
return new Parent { Name = 'Parent' };
}
else
{
return new Child {Name = 'Child', Toys = 'Paper Plane, Spider Man'};
}
}
}
当我打电话给这个GetPerson时,我想知道它是父母还是孩子。 我认为这可能有效,但这种情况总是错误的
var person = GetPerson();
if (person is Child childPerson) // This is always false :(
{
var toys = childPerson.Toys;
}
我复制并粘贴了“if”语句,当人实际上是“Child”类型时它确实返回true。 在输入if条件时,确保该人的类型确实是child类型。 这会假设GetPerson(); 总是返回父母。
你尝试过GetType()和typeof()吗?
例:
if (person.GetType() == typeof(Child))
{
...
}
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.