Diferença entre ref e out parâmetro em c #

ref (Referência) Parâmetro

O parâmetro "ref" é usado para passar o valor por referência do parâmetro real para o parâmetro formal, isto é, do método chamado para o método chamado. Em C #, um parâmetro declarado com um modificador "ref" é um parâmetro de referência. Quando você passa parâmetros por referência, diferentemente dos parâmetros de valor, um novo local não é criado para esse parâmetro. Quaisquer alterações feitas no parâmetro formal serão refletidas no parâmetro real.

Exemplo de parâmetro ref
Conforme mostrado no trecho de programa acima, todas as alterações feitas em m serão refletidas em n, pois o parâmetro é passado por referência.

Parâmetro out (Output)

O parâmetro de saída é usado para passar o resultado de volta à função de chamada. A palavra-chave 'out' é usada para declarar o parâmetro como um parâmetro de saída. Semelhante a um parâmetro de referência, um parâmetro de saída não cria um novo local de armazenamento. Em vez disso, ele se torna um alias para o parâmetro no método de chamada.

Exemplo de fora do parâmetro
No programa acima, x é declarado como um parâmetro out na função de chamada e, como você pode ver, x não foi inicializado. Quando a função Square termina, o valor de q será copiado para o parâmetro de saída x.

Diferença entre o parâmetro ref e out em C #

  1. No parâmetro de referência, as alterações feitas no parâmetro formal refletem o parâmetro real, enquanto no parâmetro out, o valor é refletido de volta no parâmetro out da função de chamada.
  2. O parâmetro real 'output' normalmente não atribui um valor, enquanto um parâmetro real declarado como referência deve sempre ter um valor atribuído antes de chamar.
    Nota: Você deve atribuir valor ao parâmetro out no corpo do método; caso contrário, o método não será compilado.
  3. Os parâmetros out e ref não criam um novo local de memória.
  4. Os parâmetros ref e out são tratados de maneira diferente no tempo de execução, mas são tratados da mesma forma no tempo de compilação.