«Пустые» значения в C#

Доброго времени суток! В этой статье я расскажу об использовании так называемых «пустых» или «неопределенных» значений для различных сущностей наших программ, написанных на C#. «Пустое» (или «неопределенное») значение задается какой-либо переменной тогда, когда программисту неизвестно, какое значение должна принимать эта переменная на данном шаге выполнения программы, а установка любого другого («конкретного») значения недопустимо.

Например, наша программа получает из «внешнего мира» (базы данных, по сети, или от пользователя с клавиатуры, или еще каким-то образом) некое значение, и есть два сценария развития событий:

  • первый, это когда значение получено (например, пользователь ввел значение);
  • второй, когда значение не получено (пользователь отказался вводить значение, и перешел к следующему шагу).

Так вот, в пером случае, мы сохраняем полученное значение в переменной (чтобы потом его использовать), а во втором — мы задаем этой же переменной «неопределенное» («пустое») значение. Или при объявлении переменной мы не может задать её какой-либо осмысленное значение, и тогда, мы задаем ей «пустое» значение.

На практике это может выглядеть примерно так:

/*
* Предшествующие операторы программы
*/
//Переменная, для хранения полученного значения
string userText = null; //Сразу задаем переменной неопределенное значение 

/*
* Пытаемся получить значение из внешнего мира
*/

//Проверяем, получено ли значение
if (userText == null)
{
    //Значение не было получено
    Console.WriteLine("Никакое значение не получено!");
}
else
{
    //Вывод полученного значения
    Console.WriteLine(userText);
} 
/*
* Последующие операторы программы
*/

В выделенной строке, мы задаем переменной «userText» «неопределенное» значение. Как несложно было заметить, в C# «неопределенное» значение задается ключевым словом null. Таким, образом, мы можем явно указать, что какая-то переменная имеет «неопределенное» значение. Ни какое-нибудь случайное, а именно неопределенное! Обратите внимание, в нашем случае, пустая строка, тоже является «конкретным», т.е. «определенным» значение, а «неопределенное» значение — это именно null.

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

Добавить комментарий