检查不同类的属性

时间:2010-11-30 14:40:29

标签: c#

我有多个类都包含相同的属性以及一整个不同的其他属性。这些类不使用任何类型的接口。我想要做的是将每个类的实例传递给可以检查属性的方法。

可以使用泛型吗?如果是这样,我如何构建一个方法来执行此任务?

2 个答案:

答案 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();
}

http://msdn.microsoft.com/en-us/library/dd264736.aspx