Я слышал эти два слова, используемые в учебных руководствах Microsoft для VB.NET. Каково различие между этими двумя словами при использовании в отношении переменных?
Переменная переменная инициализируется значением. объект инстанцируется, когда для него выделена память и запущен его конструктор.
Например, вот переменная:
Dim obj as Object
Эта переменная не была инициализирована. Как только я присвою переменной obj
значение, переменная будет инициализирована. Вот примеры инициализации:
obj = 1
obj = "foo"
Инициализация - это совсем другая вещь, но она связана, поскольку за инициализацией обычно следует инициализация:
Dim obj As New Object()
В предыдущей строке кода переменная obj
инициализирована ссылкой на новый Object
, который был инициализирован. Мы говорим, что новый объект
был инстанцирован, потому что мы создали его новый экземпляр.
Теперь я считаю, что VB.NET делает это гораздо более запутанным, чем C#, потому что в приведенном выше коде неясно, что происходит присваивание. В C# гораздо понятнее, что происходит и инстанцирование экземпляра, и инициализация переменной:
Object obj = new Object();
Чтобы инициализировать что-то, нужно установить его на начальное значение. Чтобы создать экземпляр чего-либо, нужно создать его экземпляр.
Часто это более или менее одно и то же. Это:
SqlConnection conn = new SqlConnection();
создает экземпляр объекта SqlConnection
, а инициализирует переменную conn
, устанавливая ее для этого экземпляра.
Поскольку конструктор объекта также устанавливает свойства объекта в их значения по умолчанию, часто правильно сказать, что создание экземпляра объекта инициализирует его. (Вводит в заблуждение, если объект предоставляет метод, который необходимо явно вызвать для его инициализации после его создания, как это иногда бывает.)
Создан означает, что был создан экземпляр объекта. Инициировано означает, что тот же объект выполнил некоторую инициализацию.
Когда вы создаете экземпляр класса или объекта, вы создаете его новый экземпляр или выделяете память для "хранения" одного. Инициализация этого объекта будет инструкциями, которые выполняются во время создания экземпляра.
Инстанцирование - это когда вы создаете экземпляр класса. Затем этот экземпляр становится объектом, и вы можете устанавливать его свойства или вызывать методы (указывать ему, что делать).
Инициация - это когда вы устанавливаете набор начальных условий для чего-то. Этим чем-то может быть объект, которому вы говорите инициировать себя, или просто переменная, которой вы присваиваете значение.
Объект может инициализировать некоторые другие вещи или даже инстанцировать другие объекты как часть своей инициации.
Разница в том, что инстанцирование - это создание вещи, которая может что-то делать; инициация - это то, что делается.
* Создание означает создание экземпляра для класса или объекта. Инициализация означает * инициирование того же объекта или класса для любой цели. **