3

我提到了 MSDN 库,但仍然感到困惑。那么这两种方法有什么区别呢?谁能给我一个例子?

提前谢谢。:)

4

2 回答 2

12

GetDeclaredProperty将返回仅在当前类型上声明的属性。GetProperty也将返回在父类上定义的属性。

此外,GetProperty具有重载,因此您可以指定是否只需要私有或公共属性、实例或静态等。

调用 GetDeclaredProperty 等效于调用:

GetProperty(name, 
    BindingFlags.NonPublic | 
    BindingFlags.Public | 
    BindingFlags.Static | 
    BindingFlags.Instance | 
    BindingFlags.DeclaredOnly);
于 2013-05-10T21:19:16.210 回答
3

GetDeclaredProperty将返回仅为给定类型定义的属性,而不是继承的属性。这包括使用new修饰符的属性,该修饰符会影响类的继承属性。

实际上,它是这个的简写

typeof(Uri).GetProperty("Host", BindingFlags.DeclaredOnly)

于 2013-05-10T21:20:08.693 回答