Definições
Value Types

Em C# e Java todo parâmetro é passado por valor. Assim se passarmos um "value type" estaremos passando uma cópia dele. E se passarmos um objeto estamos passando uma cópia da variável que armazena apenas o endereço para o objeto.
Possuem seus valores armazenado diretamente nas variáveis (na pilha).
Reference types
Possuem apenas o endereço na pilha, que aponta para o valor armazenado no "Heap".
Possuem apenas o endereço na pilha, que aponta para o valor armazenado no "Heap".
Ou seja quando criamos um objeto para o compilador estamos fazendo:

Métodos
Em C# e Java todo parâmetro é passado por valor. Assim se passarmos um "value type" estaremos passando uma cópia dele. E se passarmos um objeto estamos passando uma cópia da variável que armazena apenas o endereço para o objeto.
Isso justifica as seguintes informações:
- "Reference variable to another instance merely creates a second copy of the reference"
- "Reference types provide a great deal of flexibility, and they offer excellent performance when passing them to methods."
?ref?
E quanto ao método methodHowDo(ref Animal){...}, ele passa o ponteiro por referência e não uma cópia dela.
Té+
0 comentários:
Postar um comentário