sexta-feira, 1 de novembro de 2013

Dica de C# - Você sabe a diferença entre REF e OUT?!



















O C# possui os 2 identificadores de referência

  • ref - Faz uma passagem por referência 
  • out - Gera apenas um valor de output (saída)

Atenção: Não confunda o conceito de passagem por referência com o conceito de tipos de referência.

Ocorre que a CIL (Common Intermediate Language, e não mais MSIL - era o nome usado nas versões Beta do .Net) apenas suporta o ref, o out é específico da linguagem C# e quando compilado para IL se transforma em ref.

Isso explica algo muito importante : O porquê de uma rotina com out e uma com ref não serem aceitas como duas rotinas diferentes – não serem aceitas como overloads. De fato, ref e out acabam sendo a mesma coisa quando colocado em IL, apenas o compilador do C# faz a diferenciação.

Nenhum comentário:

Postar um comentário