Найти в Дзене

Неинициализированные переменные C#

В C# переменные можно объявлять почти в любом месте кода. Это удобно. Однако не знаю почему, но создатели C# почему-то запретили использовать неинициализированные переменные (даже в С++ такого нет). Я, конечно, могу предположить, почему. Если переменная не инициализирована, то в ней теоретически может храниться какой-нибудь мусор. И это в некоторых случаях может привести к труднонаходимым ошибкам. Однако, например, создатели Паскаля (Делфи, Лазарус) из этого нашли простой выход - при объявлении переменные автоматически инициализируются нулевыми значениями. В общем, нравится вам это или нет, но в C# вы не сможете сделать вот так: Это считается ошибкой и программа не будет откомпилирована. Ничего подобного нет не только в Паскале, но и в С++, хотя в С++ автоматической инициализации нет (если я правильно помню). Кстати, в C#, как и в Паскале, при объявлении, например, целочисленной переменной, компилятор поместит в неё ноль. И всё равно использование неинициализированной переменной будет

В C# переменные можно объявлять почти в любом месте кода. Это удобно. Однако не знаю почему, но создатели C# почему-то запретили использовать неинициализированные переменные (даже в С++ такого нет).

Я, конечно, могу предположить, почему. Если переменная не инициализирована, то в ней теоретически может храниться какой-нибудь мусор. И это в некоторых случаях может привести к труднонаходимым ошибкам. Однако, например, создатели Паскаля (Делфи, Лазарус) из этого нашли простой выход - при объявлении переменные автоматически инициализируются нулевыми значениями.

В общем, нравится вам это или нет, но в C# вы не сможете сделать вот так:

Это считается ошибкой и программа не будет откомпилирована. Ничего подобного нет не только в Паскале, но и в С++, хотя в С++ автоматической инициализации нет (если я правильно помню).

Кстати, в C#, как и в Паскале, при объявлении, например, целочисленной переменной, компилятор поместит в неё ноль. И всё равно использование неинициализированной переменной будет считаться ошибкой. Странные они ребята, однако, разработчики C#.

Ну и, раз уж речь пошла про переменные, то также напомню, что в C# нельзя использовать необъявленные переменные. Но это как раз нормально для языков со строгой типизацией. Без объявления использовать переменные можно только в каких-нибудь PHP или Python.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.