Pass By Value and Pass By Reference In C#

Pass By Value:

By default, the method parameters are passed by value. That is a parameter declared with no modifier is passed by value is called Value Parameter. When a method is invoked, the values of actual parameters are assigned to the corresponding formal parameters. The values of the value parameters can be changed within the method.

Example:

using System;
class PassValue
{
  static void Change(int k)
   { 
     k=k+10;
   }
  public static void Main()
  {
    int i=50;
    Change(i);
    Console.WriteLine("i =" +i);
  }
}

Output:

i = 50

Pass By Reference:

In C#, the value parameters to be passed by reference. To do this, we use the ref keyword. It has the following syntax:

void Modify(ref int x)   // x is declared as a reference parameter.

Example:

using System;
class PassReference
{
  static void Swap(ref int p, ref int q)
  {
    int temp=p;
    p=q;
    q=temp;
  }
public static void Main()
 {
   int x=50, y=60;
   Console.WriteLine("Before Swapping");
   Console.WriteLine("x= " +x);
   Console.WriteLine("y= " +y);
   Swap(ref x, ref n);
   Console.WriteLine("After Swapping");
   Console.WriteLine("x= " +x);
   Console.WriteLine("y= " +y);
  }
}

Output:

Before Swapping
x=50
y=60
After Swapping
x=60
y=50