Книга: C# для профессионалов. Том II

Инициализация переменных

Инициализация переменных

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

? Переменные, которые являются полями-членами, по умолчанию инициализируются с помощью нулевых значений, если они не инициализируются явно. Это означает, что числовые типы данных будут содержать нули, bool будут содержать false, а все ссылочные типы (включая строки и объекты) будут содержать ссылку null. Структуры инициализируют нулем каждый свой член.

? Локальные переменные методов не инициализируются по умолчанию. Однако компилятор будет давать ошибку, если локальная переменная используется до инициализации. Можно при желании инициализировать переменную, вызывая ее конструктор по умолчанию (тот, который обнуляет память).

// локальные переменные метода
int X1; //в этом месте X1 содержит случайные данные
// int Y = X1; // эта закомментированная строка будет создавать ошибку
               // компиляции, т.к. X1 используется до инициализации
X1 = new int(); // теперь X1 будет содержать ноль.

Оглавление книги


Генерация: 3.309. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз