Method Parameters Actual Reference in C#

  1. using System.IO;  
  2. using System;  
  3. class MyClass   
  4. {  
  5.     public int Value = 20;  
  6. }  
  7. class MethodParametersActualReference   
  8. {  
  9.     static void RefAsParameter(ref MyClass objByRef)   
  10.     {  
  11.         objByRef.Value = 50;  
  12.         Console.WriteLine("After member assignment: {0}", objByRef.Value);  
  13.         objByRef = new MyClass();  
  14.         Console.WriteLine("After new object creation: {0}", objByRef.Value);  
  15.     }  
  16.     static void Main() {  
  17.         MyClass obj = new MyClass();  
  18.         Console.WriteLine("Before method call: {0}", obj.Value);  
  19.         RefAsParameter(ref obj);  
  20.         Console.WriteLine("After method call: {0}", obj.Value);  
  21.     }  

Output:

Before method call: 20
After member assignment: 50
After new object creation: 20
After method call: 20