.Net Review
C# работа с ref и out в методах.
Иногда необходимо получить из метода больше одного объекта, а иногда изменить передаваемый объект значимого типа. Для этого используются ключевые слова out и ref.
Как вернуть из функции больше одного значение?
Есть много способов для решения этого вопроса: сделать класс, который будет содержать необходимые типы, возвращать кортеж(Tuple) или использовать out/ref для значимых типов. Важно отметить, чтобы изменять данные ссылочных типов достаточно их передать в метод/функцию и изменить, а для похожей работы изменения передаваемых значимых типов необходимо использовать out/ref.
Применение
Out. Используется, когда необходимо вернуть новый объект. Для примера реализуем бесполезную математическую функцию). Она должна вернуть сумму и кол-во итераций.
Ref. Используется, когда необходимо вернуть существующий объект. Для примера также реализуем бесполезную математическую функцию). Она должна вернуть сумму и изменённый шаг.
При использовании данных функций необходимо при передаче данных в неё указать ref/out:
Результат выполнения:
Итог
Ref/out - интересный инструмент, когда необходимо вернуть более одного объекта значимого типа. Хорошим примером может служить функции валидации и получения данных из компонентов. Если у вас есть более целесообразные примеры использования такого подхода - пишите в комменты. Код можно найти здесь.
Также, хочу порекомендовать онлайн образование по направлению C# от Skillbox, которое даст вам всю необходимую практику в освоении платформы .Net, а также поможет вам сделать конкретные шаги к покорению ваших целей в IT. Переходите по ссылке, чтобы узнать о всех возможностях и преимуществах такого образования.
Спасибо за внимание!
Наш телеграмм канал: https://t.me/dotnetreview