Операция создания экземпляра(объекта)

Операция New используется для создания новых экземпляров классов и размерных типов. Имеется три формы операции New:

Операция создания объекта

Операция создания объекта используется для создания экземпляра класса или размерного типа.

object-creation-expression:

New   type   constructor-specifieropt ( argument-listopt )

constructor-specifier:

.   identifier

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

Операция создания экземпляра массива

Операция создания экземпляра массива используется для создания экземпляра массива.

array-creation-expression:

New   non-array-type   [   expression-list   ]   array-creation-expression-initializeropt

New  (   array-type   ,   array-initializer   )

array-creation-expression-initializer:

=   array-initializer

Операция создания экземпляра делегата

Операция создания экземпляра делегата используется для создания экземпляра делегата.

delegate-creation-expression:

New   delegate-type   (   expression   )

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

Обработка операции создания экземпляра делегата в форме New D(E), где D – это тип-делегат, а E – выражение, во время компиляции производится следующим образом:

См.также:

Первичные выражения