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
- static void Main(string[] args)
- {
-
- string name = "Ahsan";
- SetName(ref name);
- Console.WriteLine(name);
-
- string occupation = "Engineer";
- SetOccupation(ref name, out occupation);
- Console.WriteLine(occupation);
-
- Console.ReadLine();
- }
- static void SetName(ref string name)
- {
- if (name == "Ahsan")
- {
- Console.WriteLine("This is {0}",name);
- }
- name = "Wasim";
- }
-
- static void SetOccupation(ref string name, out string occupation)
- {
- if (name == "Wasim")
- {
- occupation = "Student";
- }
- else
- {
- occupation = "Engineer";
- }
- }
Out Put:
This is Ahsan
Wasim
Student