Каково различие между “инстанцированным” и “инициализированным”?

Я слышал эти два слова, используемые в учебных руководствах Microsoft для VB.NET. Каково различие между этими двумя словами при использовании в отношении переменных?

99
задан Andrew Hare 25 February 2010 в 00:48
поделиться

6 ответов

Переменная переменная инициализируется значением. объект инстанцируется, когда для него выделена память и запущен его конструктор.

Например, вот переменная:

Dim obj as Object

Эта переменная не была инициализирована. Как только я присвою переменной obj значение, переменная будет инициализирована. Вот примеры инициализации:

obj = 1
obj = "foo"

Инициализация - это совсем другая вещь, но она связана, поскольку за инициализацией обычно следует инициализация:

Dim obj As New Object()

В предыдущей строке кода переменная obj инициализирована ссылкой на новый Object, который был инициализирован. Мы говорим, что новый объект был инстанцирован, потому что мы создали его новый экземпляр.

Теперь я считаю, что VB.NET делает это гораздо более запутанным, чем C#, потому что в приведенном выше коде неясно, что происходит присваивание. В C# гораздо понятнее, что происходит и инстанцирование экземпляра, и инициализация переменной:

Object obj = new Object();
40
ответ дан 24 November 2019 в 05:03
поделиться

Чтобы инициализировать что-то, нужно установить его на начальное значение. Чтобы создать экземпляр чего-либо, нужно создать его экземпляр.

Часто это более или менее одно и то же. Это:

SqlConnection conn = new SqlConnection();

создает экземпляр объекта SqlConnection , а инициализирует переменную conn , устанавливая ее для этого экземпляра.

Поскольку конструктор объекта также устанавливает свойства объекта в их значения по умолчанию, часто правильно сказать, что создание экземпляра объекта инициализирует его. (Вводит в заблуждение, если объект предоставляет метод, который необходимо явно вызвать для его инициализации после его создания, как это иногда бывает.)

14
ответ дан 24 November 2019 в 05:03
поделиться

Создан означает, что был создан экземпляр объекта. Инициировано означает, что тот же объект выполнил некоторую инициализацию.

3
ответ дан 24 November 2019 в 05:03
поделиться

Когда вы создаете экземпляр класса или объекта, вы создаете его новый экземпляр или выделяете память для "хранения" одного. Инициализация этого объекта будет инструкциями, которые выполняются во время создания экземпляра.

2
ответ дан 24 November 2019 в 05:03
поделиться

Инстанцирование - это когда вы создаете экземпляр класса. Затем этот экземпляр становится объектом, и вы можете устанавливать его свойства или вызывать методы (указывать ему, что делать).

Инициация - это когда вы устанавливаете набор начальных условий для чего-то. Этим чем-то может быть объект, которому вы говорите инициировать себя, или просто переменная, которой вы присваиваете значение.

Объект может инициализировать некоторые другие вещи или даже инстанцировать другие объекты как часть своей инициации.

Разница в том, что инстанцирование - это создание вещи, которая может что-то делать; инициация - это то, что делается.

2
ответ дан 24 November 2019 в 05:03
поделиться

* Создание означает создание экземпляра для класса или объекта. Инициализация означает * инициирование того же объекта или класса для любой цели. **

4
ответ дан 24 November 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: