static void ExibirMensagens() { Pessoa pessoa = new Pessoa(); pessoa.Nome = "Marcos"; Pessoa pessoa2 = new Pessoa(); pessoa2.Nome = "Marcos Jr."; AlterarPessoa(pessoa); AlterarReferenciaPessoa(ref pessoa2); if (pessoa != null) Console.WriteLine("O nome é: " + pessoa.Nome); // exibe else Console.WriteLine("A pessoa não existe!"); // não exibe if (pessoa2 != null) Console.WriteLine("O nome é: " + pessoa2.Nome); // não exibe else Console.WriteLine("A pessoa2 não existe!"); // exibe int v1 = 4, v2 = 3; IncrementarValor(v1); // v1 = 4 IncrementarValorRef(ref v2); // v2 = 5 Console.WriteLine("v1 é " + v1 + " e v2 é " + v2); // v1 é 4 e v2 é 5 }
// Este método irá alterar o valor da variável original, atribuindo-a o valor null // Pessoa é um tipo por referência sendo passado por referência static void AlterarReferenciaPessoa(ref Pessoa p) { p.Nome = "João"; p = null; }
// Este método apenas irá alterar o valor da propriedade nome da variável p // Pessoa é um tipo por referência static void AlterarPessoa(Pessoa p) { p.Nome = "José"; p = null; }