Ответ 1
В С# вы используете словари для связывания значений со строками.
Можно ли использовать динамическую переменную (не уверенную в наименовании) в С#?
В PHP я могу сделать
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
Можем ли мы сделать это на С#?
В С# вы используете словари для связывания значений со строками.
Нет, в принципе. Компилятор не гарантирует, что переменные метода будут существовать (в их форме как написано) или с именами...
Если они были полями (экземплярами или статическими), вы могли бы использовать отражение для получения значений; но не переменные метода. Для чего вы хотите, возможно, использовать словарь в качестве замены?
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"
Друг-словарь - это способ пойти.