Режимы передачи параметров и выхода используются для того, чтобы метод мог изменять переменные, передаваемые вызывающим методом.
Каждый режим передачи параметров (ref и out) предназначен для удовлетворения различных потребностей программирования.
Вызывающий метод, который принимает параметр out , равен , а не , необходимому для присвоения переменной, переданной в качестве параметра out до вызова; однако метод необходимо присвоить параметру out перед возвратом.
Один способ думать о из параметров - это то, что они похожи на дополнительные возвращаемые значения метода. Они удобны, когда метод должен возвращать более одного значения.
Не путайте концепцию передачи по ссылке с концепцией ссылочных типов.
Два понятия не связаны; параметр метода может быть изменен с помощью ref независимо от того, является ли это типом значения или ссылочным типом, при передаче по ссылке нет бокса с типом значения.