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