Бокс и распаковка при использовании out и ref параметров

Стандарт C ++ 8.5 / 12

Инициализация, возникающая при передаче аргументов, возврат функции, исключение (15.1), обработка исключения (15.3) и список инициализаторов, заключенных в фигурные скобки ( 8.5.1) называется копией-инициализацией и эквивалентна форме

T x = a;

Инициализация, возникающая в новых выражениях (5.3.4), static_cast выражениях (5.2.9), преобразования типов функциональных обозначений (5.2.3), а начальные и членные инициализаторы (12.6.2) называются прямой инициализацией и эквивалентны форме

T x(a);
16
задан brain_pusher 24 February 2011 в 10:07
поделиться

1 ответ

Для ref Ключевое слово Уже упоминалось в MSDN , что:

Не следует путать концепцию передачи по ссылке с концепцией ссылочных типов. Эти два понятия не совпадают. Параметр метода может быть изменен с помощью ref независимо от того, является ли он типом значения или ссылочным типом. нет бокса типа значения , когда он передается по ссылке.

Что касается ключевого слова out:

Ключевое слово out позволяет передавать аргументы по ссылке . Это аналогично ключевому слову ref , за исключением того, что ref требует, чтобы переменная была инициализирована до ее передачи.

26
ответ дан Shekhar_Pro 24 February 2011 в 10:07
поделиться
Другие вопросы по тегам:

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