Вопрос

Можно ли использовать динамическую переменную (не уверен в именовании) в С#?

В 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"

В противном случае лучше всего использовать словарь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top