Можно ли как-то определить переменную по ее имени в виде строки?
Например:
int s = 0;
FindVar("s") = 25;
Console.WriteLine(s.ToString()); // 25
Знаю, что функцию можно, но вот именно переменная интересует.
С локальной переменной этого не сделать, т. к. компилятор имеет право вообще не использовать никакие переменные или назначить им свои имена.
Если вы сделаете переменную членом класса — полем или свойством, то задача станет решаемой: до членов класса можно добраться с помощью рефлексии:
class Data
{
public int a, b, c;
public void SetField(string name, int value)
{
var field = typeof(Data).GetField(name);
field.SetValue(this, value);
}
}
Затем:
var data = new Data();
Console.WriteLine(data.a); // 0
data.SetField("a", 10);
Console.WriteLine(data.a); // 10
Можно.
Используйте Dictionary.
//Заполнение:
Dictionary<string, object> vars = new Dictionary<string, object>();
vars["переменная1"] = 20;
vars["переменная2"] = "Hello, world";
//Вывод:
Console.WriteLine(vars["переменная1"]); //20
Console.WriteLine(vars["переменная2"]); //Hello, world!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим, класс внутри себя содержит дженерик словарьЯ бы хотел его прокинуть наружу, но с запретом на редактирование
Как изменить Scale всех объектов в массивеЯ сделал так: public GameObject[] scaler;
Нужно выполнить обновление записей в таблице в субд Postgres,