OriginalGriff
Чтобы добавить к тому, что сказал Патрис, если вы не инициализируете переменную, ей присваивается значение по умолчанию, основанное на ее типе. "Базовая переменная", такая как целое число или двойник, равна нулю, поэтому
Dim i As Integer
Dim d As Double
Это то же самое что сказать
Dim i As Integer = 0
Dim d As Double = 0.0
Но для более сложных переменных, таких как строки, они не являются таковыми - этим переменным присваиваются значения класса по умолчанию, которые являются специальным значением, называемым
Nothing
- который содержит ... ну, ничего. Это на самом деле очень важно знать, потому что
Nothing
это не то же самое, что "пусто".
Пустая строка:
Dim s As String = ""
означает, что переменная содержит реальную, живую, подлинную - если она пуста - строку.
Dim s As String
отличается - она вообще ничего не содержит, и если вы попытаетесь использовать
s
чтобы вызвать любой из строковых методов, вы получите "исключение нулевой ссылки", которое говорит: "здесь нет ничего, чтобы вызвать метод!"
Это немного похоже на автомобили. У вас есть автомобиль, который вы всегда паркуете в одном и том же месте. Вы идете в космос, садитесь в машину и можете ехать на работу. Он прекрасно работает, даже если вы продадите машину и купите новую: она находится в пространстве, так что вы можете управлять ею. Автомобиль-это значение (строка); пробел-это переменная (контейнер для экземпляра автомобиля)
Но... если ваша жена встает рано и берет машину, то пространство пусто, и когда вы пытаетесь ехать на работу, у вас есть проблема: вы не можете сделать ничего, что вы обычно делаете:
Dim mySpace as Car
mySpace.OpenDoor(Cardoors.Driver)
Произойдет сбой (с нулевой ссылкой), когда вы попытаетесь вызвать его, потому что пространство пусто. В реальной жизни, если вы подойдете к своему пустому парковочному месту и попытаетесь открыть дверь и сесть, вы получите очень странные взгляды, и вы действительно не скоро доберетесь до работы! В компьютерном мире то же самое - попытка использовать переменную, содержащую
Nothing
это значит, что компьютер странно смотрит на вас и работает не так, как вы надеялись!
В результате рекомендуется всегда устанавливать начальное значение при объявлении переменной, даже если она содержит нулевое или пустое значение.
Теперь в этом больше смысла?