私はプロパティの名前を持っており、クラス内でその値を見つける必要がありますが、この値に達する最も速い方法は何ですか?プロパティ名とその値が必要
答えて
私はあなたが実行時にプロパティの名前を持っていると仮定しています。コーディングされていないが...
はのは、あなたのクラスがするtheClassと呼ばれると仮定しましょう、それはThePropertyというプロパティがあります。実行時に
object GetThePropertyValue(object instance)
{
Type type = instance.GetType();
PropertyInfo propertyInfo = type.GetProperty("TheProperty");
return propertyInfo.GetValue(instance, null);
}
プロパティの名前を使用してください。それがnullableプロパティ(int?プロパティなど)の場合は、property.Valueを使用します。
質問が十分ではないため、投票結果は公平ではありませんでした。 – fbinder
あなたがプロパティの値を取得するためにリフレクションを使用することができます。
つの注意点:
難読化:難読化ツールは は、この機能が解除されますプロパティの名前を変更することがあります。
リファクタリング: のリファクタリングを使用すると、コードが難しくなります。 リファクタリング。プロパティの という名前を変更する場合は、 反射を使用して名前に基づいてプロパティ値 を取得するインスタンスを で検索する必要があります。
あなたはあなたが文字列としてプロパティの名前を持っていることを意味すると思います。この場合、プロパティ値を取得するために少しのリフレクションを使用する必要があります。下の例では、プロパティを含むオブジェクトはobj
と呼ばれています。
var prop = obj.GetType().GetProperty("PropertyName");
var propValue = prop.GetValue(obj, null);
希望します。
開発にではなくランタイムに興味がある場合は、Jon SkeetのMaking reflection fly and exploring delegatesブログ記事をご覧ください。
- 1. その値からプロパティ名を取得
- 2. プロパティ名とその値を取得するには?
- 3. XMLからの要素名とプロパティ値の抽出
- 4. @RequestHeader要求のパラメータと値のための必要なプロパティの振る舞い
- 5. ソートする必要がある名前とその番号のリスト.TXTファイル
- 6. クラスに読み書き可能なGUIDとDateTimeプロパティの値が必要です
- 7. 時にそれが必要
- 8. C#のプロパティ - サブプロパティが必要です
- 9. ARMテンプレートの 'type'プロパティが必要です
- 10. clearfixの表示値:なぜそれが必要ですか?
- 11. Restlerは必要なプロパティを必要としません
- 12. クローズコンパイラ:変数名とそのプロパティの名前変更
- 13. 型名が必要です
- 14. のZend_Filter_Inputと必要な値
- 15. def __get__が必要な理由:戻り値の型。型名?
- 16. 注文モデルクラスのCustomerIdのプロパティと共にCustomerのプロパティが必要ですか?
- 17. 必要なプロパティとJSON PropertyName意味
- 18. 実行前にupdate sqlのカラム名とカラム値が必要です
- 19. Spring mvc MappingSqlQueryプロパティ 'sql'が必要です
- 20. プログラムのファイル名:なぜそれらの必要性?
- 21. 属性に変換オブジェクトのプロパティ名とプロパティ値
- 22. プロパティのコンテンツは、あなたがそれをラップする必要があります...もっと一度
- 23. その名前でクッキーの値を読み取る必要があります。anglejs
- 24. PHP SyntaxError:JSON.parse:行6のオブジェクトのプロパティ値の後に '、'または '}'が必要です
- 25. 私は特定のDOCTYPEプロパティ値によって、そのセットでハードコードされたフォルダ名を交換する必要が動的に
- 26. CloudFormationエラー:プロパティの値NetworkInterfacesはオブジェクトのリストである必要があります
- 27. Java署名のヘルプが必要
- 28. CMakeのエラー "コマンド名が必要です"
- 29. スウィフト - プロパティのデフォルト値を親クラスにする必要がありますか?
- 30. 私は線形式を持っており、Pythonの変数の値ごとにその値が必要です
あなたは私にそれを打つ。ただし、関数は特定の型のパラメータを持つ必要はありません。 'オブジェクトインスタンス'はうまくいくと私は信じている。 – Noldorin
@ Noldorin:あなたは入力パラメータについて正しいです。コードを更新しました:o) –
パーフェクト、プロパティ名をパラメータに追加しました。プロパティ名を返すことができます – Coppermill