2013-05-12 6 views
5

.Net 4.5 имеет PropertyInfo.GetMethod как собственность на PropertyInfo класс. Это что-то отличное от метода PropertyInfo.GetGetMethod? Страница документации практически не заполнена. Единственная разница, которую я могу найти, - GetGetMethod по умолчанию возвращает только публичный геттер, а GetMethod возвращает даже непубличный геттер (то же самое достигается GetGetMethod(true)).Разница между методом GetGetMethod и свойством GetMethod?

Аналогичным образом существует метод GetSetMethod и SetMethod в .NET 4.5. Почему это было внедрено в .NET?

ответ

11

Нет никакой разницы. Свойство GetMethod звонит GetGetMethod, чтобы получить геттер. Вот что 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 просто проще в использовании, потому что это не имеет отношения от параметра.

Никогда не думал, что я мог бы использовать слово получить так много раз, только в одном предложении!

+6

+1 за то, что вы смеетесь над предложением 'Свойство GetMethod вызывает GetGetMethod, чтобы получить getter.' – theyetiman

Смежные вопросы