O que é o uso de "ref" para variáveis do tipo de referência em C #?
Entendo que se eu passar um tipo de valor int
, struct
, etc.) como um parâmetro (sem oref
keyword), uma cópia dessa variável é passada para o método, mas se eu usar oref
palavra-chave, uma referência a essa variável é passada, não uma nov
Mas com tipos de referência, como classes, mesmo sem oref
keyword, uma referência é passada para o método, não uma cópia. Então, qual é o uso doref
palavra-chave com tipos de referência?
Considere por exemplo
var x = new Foo();
Qual é a diferença entre o seguinte?
void Bar(Foo y) {
y.Name = "2";
}
void Bar(ref Foo y) {
y.Name = "2";
}