.Net Review
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Читать 1 минуту

C# работа с ref и out в методах.

Image for post

Иногда необходимо получить из метода больше одного объекта, а иногда изменить передаваемый объект значимого типа. Для этого используются ключевые слова out и ref.

Как вернуть из функции больше одного значение?

Есть много способов для решения этого вопроса: сделать класс, который будет содержать необходимые типы, возвращать кортеж(Tuple) или использовать out/ref для значимых типов. Важно отметить, чтобы изменять данные ссылочных типов достаточно их передать в метод/функцию и изменить, а для похожей работы изменения передаваемых значимых типов необходимо использовать out/ref.

Применение

Out. Используется, когда необходимо вернуть новый объект. Для примера реализуем бесполезную математическую функцию). Она должна вернуть сумму и кол-во итераций.

Image for post

Ref. Используется, когда необходимо вернуть существующий объект. Для примера также реализуем бесполезную математическую функцию). Она должна вернуть сумму и изменённый шаг.

Image for post

При использовании данных функций необходимо при передаче данных в неё указать ref/out:

Image for post

Результат выполнения:

Image for post

Итог

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

Также, хочу порекомендовать онлайн образование по направлению C# от Skillbox, которое даст вам всю необходимую практику в освоении платформы .Net, а также поможет вам сделать конкретные шаги к покорению ваших целей в IT. Переходите по ссылке, чтобы узнать о всех возможностях и преимуществах такого образования.

Спасибо за внимание!

Наш телеграмм канал: https://t.me/dotnetreview

255 просмотров
Добавить
Еще
.Net Review
Канал о технологиях .Net и не только. Здесь вы найдете разборы, уроки, фишки технологий и языков программирования... https://t.me/dotnetreview
Подписаться