Разница между параметром ref и out в c #

ref (Ссылка) Параметр

Параметр «ref» используется для передачи значения по ссылке из фактического параметра в формальный параметр, то есть из метода вызываемого в вызываемый метод. В C # параметр, объявленный с модификатором «ref», является ссылочным параметром. Когда вы передаете параметры по ссылке, в отличие от значений параметров, новое местоположение для этого параметра не создается. Любые изменения, внесенные в формальный параметр, будут отражены в фактическом параметре.

Пример параметра ref
Как показано в приведенном выше фрагменте программы, любые изменения, внесенные в m, будут отражены в n, так как параметр передается по ссылке..

выходной (выходной) параметр

Выходной параметр используется для передачи результата обратно вызывающей функции. Ключевое слово 'out' используется для объявления параметра как параметра Output. Подобно ссылочному параметру, выходной параметр не создает новое место хранения. Вместо этого он становится псевдонимом параметра в вызывающем методе..

Пример нашего параметра
В приведенной выше программе x объявлен как параметр out в вызывающей функции, и, как вы можете видеть, x не был инициализирован. Когда функция Square завершается, значение q будет скопировано в выходной параметр x.

Разница между параметром ref и out в C #

  1. В ссылочном параметре изменения, внесенные в формальный параметр, отражают фактический параметр, тогда как в выходном параметре значение отражается обратно в выходной параметр вызывающей функции..
  2. Фактическому параметру «output» обычно не присваивается значение, в то время как фактическому параметру, объявленному как ссылка, всегда следует присваивать значение перед вызовом.
    Заметка: Вы должны присвоить значение параметру out в теле метода; в противном случае метод не будет скомпилирован.
  3. Параметры out и ref не создают новую ячейку памяти.
  4. Параметры ref и out обрабатываются по-разному во время выполнения, но они обрабатываются одинаково во время компиляции..