2009-05-26 26 views
1

可能性の重複を変数を使用して、オブジェクトのプロパティにアクセスします。
Property Name and need its value簡単なもの? C#で

こんにちは、

この1つは、ほとんどの人のために簡単にする必要があります。 私は変数値を使ってオブジェクトの通常の変数にアクセスしたいとします。

例えば:私は、変数名のリストを配列を持っていると私はそれらを使用して、オブジェクトから情報を取得したいです。これは明らかに間違っている:私が使用する他の言語(ないC#の)で

string[] variable_names = new string[] {"name", "surname"}; 
myObject.variable_names[0] = 1; 
myObject.variable_names[1] = 1; 

myObject[variable_names[0]] = 1; 

私は例が愚かに見えるが、それはそれを説明するだけの方法でした知っています。事前に

感謝:)

C#が強く入力さ
+3

私が正しく理解していれば、あなたは、プロパティの名前を文字列変数によって保持されているプロパティに、アクセスしたいです。もしそうなら、あなたの答えが含まれているかもしれません:http://stackoverflow.com/questions/798567/property-name-and-need-its-value/ –

+0

ありがとう、あなたのコメントは正しい答えでなければなりません:) – ozke

答えて

6

これを行うには、Reflectionを使用する必要があります。あなたがアクセスしたいことはmyObjectというの財産であると仮定すると:

var type = myVariable.GetType(); 
var property = type.GetProperty("name"); 
property.SetValue(myVariable, 1, new object[] {}); 
2

プロパティが存在する場合、これはそのコンパイラのチェックを意味しています。したがって、名前でプロパティに動的にアクセスするのは簡単ではありません。このためにリフレクションを使用する必要があります。

の代わりに(私は他の人がこれを行うと確信している)、これはどのように機能するかを説明し、私はいつでもあなたができる、強い型付けを提供するために、インターフェイスまたは別の平均値を使用することをお勧めします。 C#はスクリプト言語ではないため、C#はスクリプト言語として使用すべきではありません。

関連する問題