Книга: C# для профессионалов. Том II
Инициализация переменных
Инициализация переменных
В C++ переменные никогда не инициализируются, если их явно не инициализировать (или в случае классов предоставить конструкторы). Если этого не сделать, переменные будут содержать какие-то случайные данные, оказавшиеся в памяти, это отражает особое внимание в C++ к производительности. C# уделяет больше внимания исключению ошибок во время выполнения и поэтому строже относится к инициализации переменных. В C# существуют следующие правила:
? Переменные, которые являются полями-членами, по умолчанию инициализируются с помощью нулевых значений, если они не инициализируются явно. Это означает, что числовые типы данных будут содержать нули, bool
будут содержать false
, а все ссылочные типы (включая строки и объекты) будут содержать ссылку null
. Структуры инициализируют нулем каждый свой член.
? Локальные переменные методов не инициализируются по умолчанию. Однако компилятор будет давать ошибку, если локальная переменная используется до инициализации. Можно при желании инициализировать переменную, вызывая ее конструктор по умолчанию (тот, который обнуляет память).
// локальные переменные метода
int X1; //в этом месте X1 содержит случайные данные
// int Y = X1; // эта закомментированная строка будет создавать ошибку
// компиляции, т.к. X1 используется до инициализации
X1 = new int(); // теперь X1 будет содержать ноль.
- Инициализация
- 4.9 Инициализация
- Инициализация сессии и регистрация переменных
- Более подробное рассмотрение переменных
- Синтаксис инициализации членов-переменных
- Инициализация переменных целого типа
- Объявление переменной на внутреннем уровне
- Описание данных целого типа
- Массивы
- Тело функции
- Отличия языка PascalABC.NET от Delphi