9

.Net 4.5 具有PropertyInfo.GetMethod作为PropertyInfo类的属性。PropertyInfo.GetGetMethod它与方法有什么不同吗?文档页面几乎是空白的。我能找到的唯一区别是GetGetMethod默认情况下仅返回公共 getter,而GetMethod甚至返回非公共 getter(通过 实现相同GetGetMethod(true))。

同样,.NET 4.5 中也有GetSetMethod方法和SetMethod属性。为什么在 .NET 中引入它?

4

1 回答 1

18

没有区别。该属性GetMethod调用GetGetMethod以获取 getter。1以下是 ILSpy 告诉我的关于属性实现的内容:

// System.Reflection.PropertyInfo
[__DynamicallyInvokable]
public virtual MethodInfo GetMethod
{
    [__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
    get
    {
        return this.GetGetMethod(true);
    }
}

该属性GetMethod更易于使用,因为它与参数无关。

1 没想到一句话就可以用得到这么多次!

于 2013-11-27T11:23:30.470 回答