クラスGetValue
のGetConstantValue
とGetRawConstantValue
メソッドの違いは何ですか? PropertyInfo
残念ながら、MSDN のドキュメントは、この件に関してあまり明確ではありません。
質問する
4224 次
1 に答える
24
GetConstantValue
とはどちらもGetRawConstantValue
リテラルでの使用を意図しています (const
フィールドの場合を考えてください。ただし、意味的にはフィールド以外にも適用できます) -GetValue
実行時に何かの実際の値を取得するものとは異なり、定数値 (GetConstantValue
またはを介してGetRawConstantValue
) は実行時ではありません。依存 - メタデータから直接です。
それでは、 と の違いにたどり着きGetConstantValue
ますGetRawConstantValue
。基本的に、後者はより直接的で原始的な形式です。これは主にenum
メンバー向けに表示されます。たとえば、次のものがあった場合:
enum Foo { A = 1, B = 2 }
...
const Foo SomeValue = Foo.B;
GetConstantValue
のSomeValue
はFoo.B
; _ ただし、GetRawConstantValue
のSomeValue
は2
。特に、GetConstantValue
リフレクションのみのコンテキストを使用している場合は使用できません。値を にボックスFoo
化する必要があるためです。これは、リフレクションのみを使用している場合は実行できません。
于 2013-08-07T09:13:18.800 に答える