Capisco che se passo un valore-tipo ( int, structecc.) Come parametro (senza la refparola chiave), una copia di quella variabile viene passata al metodo, ma se uso la refparola chiave viene passato un riferimento a quella variabile, non uno nuovo.
Ma con tipi di riferimento, come le classi, anche senza la refparola chiave, viene passato un riferimento al metodo, non una copia. Quindi, a che serve la refparola chiave con i tipi di riferimento?
Prendi ad esempio:
var x = new Foo();
Qual è la differenza tra i seguenti?
void Bar(Foo y) {
y.Name = "2";
}
e
void Bar(ref Foo y) {
y.Name = "2";
}
