Присвоение имени переменной значением другой

По определённым причинам мне нужно сделать так, чтобы значение переменной string 1 переменной могло присваиваться второй переменной как имя. Пример кода:

string name = "example";
int {name} = n;

Будет ли такой код работать? На данный момент не представляется возможным протестировать. Прошу учесть, что я не переименовываю int на другое имя, а именно создаю новую с именем значения другой переменной.


Ответы (1 шт):

Автор решения: aepot

Это невозможно. Переменная - это то, что определяется на этапе компиляции, то есть в момент выполнения самой переменной не существует, существует только код ассемблер для выполнения на процессоре, где внутри понятия переменных вообще нет. Там есть только регистры и память, никак не относящиеся к тому, что вы пишете в коде.

Но в C# есть структрура данных, подходящая под вашу задачу - словарь Dictionary.

Dictionary<string, int> dict = new Dictionary<string, int>();
dict["example"] = 1;
Console.WriteLine(dict["example"]);

Или даже так, протестируйте, выполните пошагово, разберитесь, как работает

static void Main(string[] args)
{
    Dictionary<string, int> dict = new Dictionary<string, int>();
    while (true)
    {
        Console.Write("Введите имя значения (Enter для выхода): ");
        string name = Console.ReadLine();
        if (name.Length == 0)
            break;
        Console.Write("Введите значение: ");
        dict[name] = int.Parse(Console.ReadLine());
    }

    Console.WriteLine($"Введено значений: {dict.Count}");

    foreach (var pair in dict)
    {
        Console.WriteLine($"{pair.Key} = {pair.Value}");
    }
}

Вывод в консоль

Введите имя значения (Enter для выхода): вася
Введите значение: 22
Введите имя значения (Enter для выхода): привет
Введите значение: 800
Введите имя значения (Enter для выхода): !!===
Введите значение: 1
Введите имя значения (Enter для выхода): 1234 моя переменная
Введите значение: -333
Введите имя значения (Enter для выхода):
Введено значений: 4
вася = 22
привет = 800
!!=== = 1
1234 моя переменная = -333

Стоит заметить, что в отдельно взятом словаре все ключи и все значения меют один и тот же тип. Для примера выше ключ словаря - это string, а значение - int.

→ Ссылка