我有多个类都包含相同的属性以及一整个不同的其他属性。这些类不使用任何类型的接口。我想要做的是将每个类的实例传递给可以检查属性的方法。
可以使用泛型吗?如果是这样,我如何构建一个方法来执行此任务?
答案 0 :(得分:7)
好吧,你可以使用反射...但是最好使用指定属性的接口,然后你可以使每个类实现接口。泛型在这里不会帮助你 - 例如,没有办法指定“T必须是具有属性X的类型”。
如果您使用的是C#4,可以使用动态输入:
public void Foo(dynamic d)
{
Console.WriteLine(d.MyProperty);
}
但是,如果可能的话,我会建议你尝试使用静态类型(通过接口)。
答案 1 :(得分:2)
听起来像是用于动态(在C#4.0中)
public void DoMethodThing (dynamic your_object){
your_object.ThatThingYouDo();
}