C# 如何获取子类的属性值
我有一个从基类(基类)继承的类(后代1)。子类的实例被传递到以基类为参数的方法中。然后使用反射调用对象上的属性C# 如何获取子类的属性值,c#,reflection,inheritance,C#,Reflection,Inheritance,我有一个从基类(基类)继承的类(后代1)。子类的实例被传递到以基类为参数的方法中。然后使用反射调用对象上的属性 public class BaseClass { } public class Descendant1 : BaseClass { public string Test1 { get { return "test1"; } } } public class Processor { public string Process(BaseClass bc, string
public class BaseClass { }
public class Descendant1 : BaseClass
{
public string Test1 { get { return "test1"; } }
}
public class Processor
{
public string Process(BaseClass bc, string propertyName)
{
PropertyInfo property = typeof(BaseClass).GetProperty(propertyName);
return (string)property.GetValue(bc, null);
}
}
我的问题是。在过程中方法中,是否可以找出对象的真实情况(后代1),然后声明该类型的对象(可能使用反射),并将基类参数强制转换为该对象,然后对其执行反射特技
谢谢。我不确定我是否理解你的问题,但也许你在想这样的事情:
public string Process(BaseClass bc, string propertyName)
{
PropertyInfo property = bc.GetType().GetProperty(propertyName);
return (string)property.GetValue(bc, null);
}
GetType()获取bc的实际类型(当您传递后代1时,它将是后代1而不是基类)。这正是我的意思。谢谢。