c# Ошибка присваивания

464
05 февраля 2017, 10:44

Добрый день, есть вот такой код:

class Program
{
    static void Main(string[] args)
    {
       const string a = ""; 
       Console.WriteLine("Представьтесь");
       a = Console.ReadLine();
    }
}

Хочу считать текст в переменную а. И выдает ошибку - левая часть выражения присваивания должна быть переменной свойством или индексатором В чем проблема?

Answer 1

Ваша переменная "a" является константой, т.к. стоит ключевое слово const. Ее значение нельзя изменить. Уберите ключевое слово const и все будет работать. Можете переписать Ваш код на такой:

Console.WriteLine("Представьтесь");
string a = Console.ReadLine();

Дело в том, что константа после инициализации значения не может меняться до конца работы программы.

Answer 2

Вы объявили переменную a как константу.

Константа (constant) — это идентификатор, значение которого никогда не меняется.

Поскольку значение константы внедряется прямо в код, в период выполнения память для констант не выделяется и следовательно Вы не можете изменить ее значение.

Для того, чтобы в переменную можно было записать и считать, объявите ее следующим образом:

string a = String.Empty;
READ ALSO
Параметр лямбды

Параметр лямбды

В одной из книг по EntityFramework есть описание кода:

437
Js в проекте c# [требует правки]

Js в проекте c# [требует правки]

Как взаимодействовать с скриптом на сайте через программу (вызывать определенные функции, click)Подскажите как это реализовать

429
Запись массива в сессию

Запись массива в сессию

Как записать в сессию массив, следующего плана

561