Что хранит в себе неинициализированная переменная в C#?
Собственно вопрос и состоит в этом: Что хранить в себе неинициализированная переменная в C#? Насколько я знаю, в С++ такие переменные хранят всякий "мусор", в Java null, а для C# не нашел информации, кроме как "выдаст ошибку"
Ответы (3 шт):
C# является языком со статической типизацией. Это значит, что при создании переменной обязательно определяется тип хранящихся в ней данных, и этот тип нельзя изменить в ходе программы. (Исключение - тип dynamic)
Почитай тут - https://brainoteka.com/blogs/c-spravochnik/peremennie-c
Неинициализированным переменным присваиваются значения по умолчанию, а именно:
- для ссылочных типов:
null; - для встроенных числовых типов (
int,doubleи т.п.): 0 - для
bool:false - для
char:\0 - для перечислений: значение выражения
(E)0, гдеE— тип перечисления; - для структур: значение, созданное путем установки всем полям значений по умолчанию;
- для
Nullable: экземпляр, свойствоHasValueкоторого имеет значениеfalse, а свойствоValueне определено.
Значение по-умолчанию для типа можно определить с помощью оператора default:
int a = default(int);
Также, начиная с C# 7.1 можно использовать литерал default для присвоения значений переменным:
int a = default;
В языке C# неинициализированнае переменные не хранят в себе ничего, поскольку язык не позволяет читать из таких переменных.