質問

これはC#で(命名わからない)動的変数を使用することは可能ですか?

PHPでは、私が行うことができます。

$var_1 = "2";
$var_2 = "this is variable 2";

$test = ${"var_".$var_1};

echo $test;

output: this is variable 2;

私たちはC#でこれを行うことができますか?

役に立ちましたか?

解決

C#では、あなたは、文字列と値を関連付けるために辞書の使用しますます。

他のヒント

いいえ、基本的に。コンパイラは、

...(書かれたとして、その形で)メソッドの変数が存在することを保証するものではありません、または名前で 彼らはフィールド(インスタンスまたは静的)した場合は、

、その後は値を取得するためにリフレクションを使用することができます。ではなく、メソッド、変数。あなたが望むもののために、おそらく代替として辞書を使うのか?

var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";

Console.WriteLine(vars["var_" + vars["var_1"]]);

これはローカル変数で動作するかどうかわからない(とほとんどの場合、彼らはインデックスとして保存されているので、それはしていません)がありますが、反射によって、クラスのプロパティにアクセスすることができます。

あなたのvarがクラスのフィールドである場合、あなたは、静的 GetFieldこのような現在の値としてフィールド情報を取得するクラスTypeからの方法。

あなたは単純な配列のために見ていない?

string[] myArray = new string[2];

myArray[0] = "2";
myArray[1] = "this is variable 2"

Otherwhise辞書には、移動するための方法である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top