Присвоение значения переменной

252
04 ноября 2017, 12:11

Почему не присваивается значение в зависимости от условий ?

private void kotorijChas()
{
    string localDate = DateTime.Now.ToString();
    string[] t1 = localDate.Split(' ');
    string t2 = t1[1];
    string[] t3 = t2.Split(':');
    int t4 = int.Parse(t3[0]);
    string vremySutok;
        if (t4 > 04 && t4 <= 10)
        {
            vremySutok = "доброе утро";
        }
        else if (t4 > 10 && t4 <= 17)
        {
            vremySutok = "добрый день";
        }
        else if (t4 > 17 && t4 <= 23)
        {
            vremySutok = "добрый вечер";
        }
        else if (t4 >= 00 && t4 <= 04)
        {
            vremySutok = "доброй ночи";
        }
    textBox1.AppendText(vremySutok);

}// Определяем Утро|День|Вечер|Ночь

Answer 1

string - ссылочный тип, поэтому если вы в него явно ничего не записали там будет null

Ну и у вас в последнем if отсутствует else, поэтому компилятор не может быть уверен, что переменная точно будет проинициализирована

Вам следует либо инициализировать переменную при ее объявлении:

string vremySutok = "";

либо в последнем условии добавить else:

else vremySutok = "";

если же значение null также допустимо, то вы должны указать его явно:

string vremySutok = null;
Answer 2

string - это ссылочный тип

Компилятор не может быть уверен, что сработает хотя бы один if

READ ALSO
Вложенный try-catch и возврат ошибок

Вложенный try-catch и возврат ошибок

В программе обрабатывается массив записей из базы данных с помощью цикла foreachДля каждой записи происходит формирование класса запроса и потом...

266
Изменить поле в listview wpf c#

Изменить поле в listview wpf c#

Добавляю значение в listview так :

276
Классы и их наследование с#

Классы и их наследование с#

Доброго времени суток! Вопрос в следующем: Есть класс TableClassParent вот выдержка из этого класса

250
Запечатанный класс или ServiceLocator Catel?

Запечатанный класс или ServiceLocator Catel?

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

237