http://milaneze.com.br/post/2009/04/29/C-Metodos-Passando-parametros-por-valor-ou-por-referencia.aspx
Duas maneiras de passar parâmetros para um método são por valor ou por referência.
Quando um parâmetro é passado por valor, uma cópia dele é feita e passada para o método. Mudanças realizadas dentro do método não afetam o valor onde o método foi chamado.
Quando um parâmetro é passado por referência, é passada para o método a abilidade para acessar e modificar a variável original, passada quando o método foi chamado.
Para passar um parâmetro por referência, utiliza-se uma das seguintes palavras-chave: ref ou out. A palavra-chave ref é utilizada para variáveis já inicializadas. Quando a palavra-chave out é utilizada, é possível passar como parâmetro variáveis que ainda não foram inicializadas, podendo fazer com que elas sejam inicializadas dentro do método.
Exemplo:
1: class Quadrado
2: {3: public void QuadradoValor(int num)
4: { 5: num = num * num; 6: } 7: 8: public void QuadradoOut(out int num)
9: { 10: num = 10; 11: num = num * num; 12: } 13: 14: public void QuadradoRef(ref int num)
15: { 16: num = num * num; 17: } 18: }Implementação do exemplo:
1: class Program
2: {3: static void Main(string[] args)
4: {5: int a;
6: int b = 100;
7: Quadrado quadrado = new Quadrado();
8: 9: 10: Console.WriteLine("Valores iniciais das variáveis");
11: Console.WriteLine("Valor atual de [a]: 'não inicializado'");
12: Console.WriteLine("Valor atual de [b]: " + b.ToString() + "\n");
13: 14: 15: quadrado.QuadradoOut(out a);
16: quadrado.QuadradoRef(ref b);
17: 18: Console.WriteLine("Passando os parâmetros por referência:");
19: Console.WriteLine("[a] com Out: " + a.ToString());
20: Console.WriteLine("[b] com Ref: " + b.ToString() + "\n");
21: 22: 23: quadrado.QuadradoValor(a); 24: quadrado.QuadradoValor(b); 25: 26: Console.WriteLine("Passando os parâmetros por valor:");
27: Console.WriteLine("[a]: " + a.ToString());
28: Console.WriteLine("[b]: " + b.ToString());
29: 30: 31: Console.ReadLine(); 32: } 33: }
Nenhum comentário:
Postar um comentário