C# ref и out со значимыми типами

Что происходит когда мы используем значимые типы данных с ключевыми словами ref и out?

Использование ключевых слов out и ref со значимыми типами даёт тот же результат, что и передача ссылочного типа по значению.

Они позволяют методу управлять единственным экземпляром значимого типа. Вызывающий код должен выделить память для этого экземпляра, а вызванный метод управляет выделенной памятью.

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

На курсе C# Starter есть видеоурок про ref и out, просмотрите, полезно