Pasar un parámetro por referencia a una función

1904 vistas

Usando las palabras reservadas ref y out. La diferencia entre ellas es que con out las variables no tienen porque estar inicializadas para ser pasadas por parámetro.



csharp
  1. class TestRef
  2. {
  3.     public void TestRef(ref int i)
  4.     {
  5.         i = 1;
  6.     }
  7.  
  8.     public void TestOut(out int j)
  9.     {
  10.         j = 5;
  11.     }
  12.  
  13.     public static void Main()
  14.     {
  15.         // inicializamos en entero a
  16.         int a = 0;
  17.         // pasamos el parámetro a la función por referencia
  18.         TestRef(ref a);
  19.         if (a == 1)
  20.         {
  21.             Console.WriteLine("a vale ahora 1");
  22.         }
  23.        
  24.         // uso de out
  25.         int b;
  26.         // pasamos b como parámetro sin iniciallizarlo
  27.         TestOut(b);
  28.         // b vale ahora 5
  29.         if (b == 5)
  30.         {
  31.             Console.WriteLine("b vale ahora 5");
  32.         }
  33.     }
  34. }