1. ホーム
  2. c#

[解決済み] 特定のプロパティのPropertyInfoを取得する方法を教えてください。

2023-04-28 04:21:59

質問

特定のプロパティのPropertyInfoを取得したい。 私は使用することができます。

foreach(PropertyInfo p in typeof(MyObject).GetProperties())
{
    if ( p.Name == "MyProperty") { return p }
}

と同じようなことをする方法があるはずです。

typeof(MyProperty) as PropertyInfo

はあるのでしょうか? それとも型にとらわれない文字列比較で行き詰まるのでしょうか?

乾杯。

どのように解決するのですか?

新しい nameof() 演算子は、C# 6 の一部であり、Visual Studio 2015 で利用可能です。詳細はこちら はこちら .

あなたの例では、使用します。

PropertyInfo result = typeof(MyObject).GetProperty(nameof(MyObject.MyProperty));

コンパイラは nameof(MyObject.MyProperty) を文字列 "MyProperty" に変換しますが、Visual Studio や ReSharper などはプロパティ名をリファクタリングする方法を知っているので、文字列を変更するのを忘れることなく、プロパティ名をリファクタリングできるという利点があります。 nameof() の値をリファクタリングする方法を知っているからです。