Изменить значение глобальной переменной в локальной области без переопределения

197
27 апреля 2018, 11:49

КАК Изменить значение глобальной переменной в локальной области видимости без переопределения

int val;
while (sqlReader.Read())
{
    if (textBox_reg_login.Text == sqlReader["login"].ToString())
    {
        label_reg_login_message.Text = "Логин с таким значением уже существует";
        val = 1; //Глобальная переменная переопределяется
        break;
    }
}
if (val == 1)  //И здесь уже ошибка: переменной val не присвоено значение 
{
}
Answer 1

Откуда берётся ошибка, понятно: ведь ничто не гарантирует, что внутри цикла while будет присвоено значение переменной val. А чтение неинициализированной переменной в языке не разрешено.

Инициализируйте val каким-то значением до цикла.

И кстати, у вас val, судя по всему, локальная переменная. Поля классов (как простые, так и статические) инициализируются по умолчанию значением default соответствующего типа.

READ ALSO
Запутанность фреймворков

Запутанность фреймворков

Начал бороться с тем, что Unity отказывается видеть SystemNumerics

156
Как добавить флаг в сообщение imapclient (Gembox.Email.Imap)?

Как добавить флаг в сообщение imapclient (Gembox.Email.Imap)?

Необходимо подключиться к серверу,получить сообщения и в некоторых из них установить некоторые флаги,при помощи каких средств это можно...

126
Проблема с обработкой клика по Calendar WPF

Проблема с обработкой клика по Calendar WPF

На форме имеется Calendar, когда в нем выбираю дату, то приходится кликать по любому другому элементу или пустому месту, чтобы остальные элементы...

185