Выбор ответа Junior Типы значений и ссылочные спрашивают часто обновлено
Разница ref, out и in
Вопрос
Какое утверждение о модификаторах параметров верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: out обязан присвоить значение, ref требует инициализации до вызова. ref передаёт ссылку на переменную, и компилятор требует её инициализацию до вызова. out тоже передаёт ссылку, но метод обязан присвоить значение, а инициализация до вызова не нужна. in передаёт ссылку только для чтения (полезно для больших…
Варианты ответа
outобязан присвоить значение,refтребует инициализации до вызоваправильный ответinпередаёт копию, аrefпередаёт ссылку только для классовoutможно использовать только с типами значений, но не с классамиrefиoutполностью взаимозаменяемы, разница лишь в стиле кода
Разбор
ref передаёт ссылку на переменную, и компилятор требует её инициализацию до вызова. out тоже передаёт ссылку, но метод обязан присвоить значение, а инициализация до вызова не нужна. in передаёт ссылку только для чтения (полезно для больших структур без копирования). Все три работают с любыми типами, в том числе со ссылочными: тогда метод может заменить саму ссылку у вызывающего.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Типы значений и ссылочные»
- Что такое boxing и unboxing
- Сравнение двух упакованных чисел через ==
- Когда происходит упаковка
- Переприсваивание параметра-класса
- default и конструктор структуры без параметров
- Число различных точек
- Сумма int с переполнением, как в unchecked
- Среднее с пропусками (int?)