Out and Ref keyword in C#

This is difference between ref and out parameter:

  • When we pass a ref parameter we must assign it a value.
  • When we pass a out parameter do not need of assign a value.
  • Out parameter in method we must assign a value before returning

  1. static void Main(string[] args)    
  2. {    
  3.           
  4.     string name = "Ahsan";    
  5.     SetName(ref name);    
  6.     Console.WriteLine(name);    
  7.   
  8.     string occupation = "Engineer";    
  9.     SetOccupation(ref name, out occupation);    
  10.     Console.WriteLine(occupation);    
  11.   
  12.     Console.ReadLine();    
  13. }    
  14. static void SetName(ref string name)    
  15. {    
  16.     if (name == "Ahsan")    
  17.     {    
  18.         Console.WriteLine("This is {0}",name);    
  19.     }    
  20.     name = "Wasim";//assign a new name    
  21. }    
  22.   
  23. static void SetOccupation(ref string name, out string occupation)    
  24. {    
  25.     if (name == "Wasim")    
  26.     {    
  27.         occupation = "Student";    
  28.     }    
  29.     else    
  30.     {    
  31.         occupation = "Engineer";    
  32.     }    
  33. }   
Out Put:

This is Ahsan
Wasim
Student