2013-05-12 2 views
5

.Net 4.5はPropertyInfoクラスのプロパティとしてPropertyInfo.GetMethodを持っています。それはPropertyInfo.GetGetMethodメソッドとは異なる何かをしていますか?ドキュメントページは事実上空白です。私が見つけることができる唯一の違いは、デフォルトでGetGetMethodがパブリックゲッターだけを返し、GetMethodがパブリックでないゲッターを返すことです(同じことはGetGetMethod(true)によって達成されます)。GetGetMethodメソッドとGetMethodプロパティの違いは?

同様に、GetSetMethodメソッドと.NET 4.5のSetMethodプロパティがあります。なぜ.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の文で笑わせるために+1「GetMethodプロパティはGetGetMethodを呼び出してゲッターを取得します。 – theyetiman

関連する問題