2013-05-12 19 views
5

.Net 4.5 hat PropertyInfo.GetMethod als eine Eigenschaft auf PropertyInfo Klasse. Macht es etwas anderes als PropertyInfo.GetGetMethod Methode? Die Dokumentationsseite ist praktisch leer. Der einzige Unterschied, den ich finden kann, ist GetGetMethod Standardmäßig gibt nur öffentlichen Getter zurück, während GetMethod sogar nicht öffentlichen Getter zurückgibt (das gleiche wird durch GetGetMethod(true) erreicht).Unterschied zwischen GetGetMethod-Methode und GetMethod-Eigenschaft?

Ähnlich gibt es GetSetMethod Methode und SetMethod Eigenschaft in .NET 4.5. Warum wurde es in .NET eingeführt?

Antwort

11

Es gibt keinen Unterschied. Die Eigenschaft GetMethod ruft GetGetMethod an, um den Getter zu bekommen. Hier ist, was ILSpy sagt mir über die Immobilie Umsetzung:

// 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); 
    } 
} 

Die Eigenschaft GetMethod einfach einfacher zu bedienen ist, weil es auf einem Parameter bezieht sich nicht.

Hätte nie gedacht, ich das Wort in einem Satz so oft bekommen nutzen könnten!

+6

+1 für mich mit dem Satz lachen 'Die Eigenschaft GetMethod ruft GetGetMethod, um den Getter zu bekommen.' – theyetiman