@ProgaSyntax

Ref, out and in объяснение?

В каких случаях лучше использовать модификатор ( ref, out, in)?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Нет никакого "лучше". Есть только то, для чего они предназначены и об этом подробно говорится в документации.

0. Каждый из этих модификаторов имеет разные смыслы в зависимости от контекста.
1. ref struct - запрещает боксить структуру и вообще как-либо иначе заносить в кучу.
2. in (в женериках) - обозначает, что параметр контрвариантный (загугли)
3. out (в женериках) - обозначает, что параметр инвариантный (тоже загугли)
4. in/ref/out как модификатор аргументов методов - указывают, что передаваться будет ссылка (например на переменную).
in - запрещает модификацию. out - обязывает инициализировать перед завершением метода. ref - никчему не обязывает.

Из очевидных, но не ограничивающих сценариев использования (п4):
1. in - для передачи больших структур, чтобы они не копировались.
2. out - для TryParse
3. ref - для Swap
4. Ещё их всех можно использовать в P/Invoke для того же самого. Всякие нативные методы достаточно часто работают со ссылками.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
- в любом случае
Ref, out and in
это разные вещи
- https://msdn.com welcam
- вопросы такого уровня не приятны. сори
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы