GetGetMethod方法和GetMethod属性之间的区别?

时间:2013-05-12 09:20:19

标签: .net .net-4.5 getter-setter accessor propertyinfo

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

类似地,.NET 4.5中有GetSetMethod方法和SetMethod属性。为什么在.NET中引入它?

1 个答案:

答案 0 :(得分:13)

没有区别。属性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 从未想过我可以用一句话多次使用 get 这个词!