What is parameter passing?
The parameter passing is nothing but passing a value or reference to method.
The parameter passing can be two types in c#. They are
- Value type parameter passing
- Reference type parameter passing
Value type parameter passing:
In value type parameter passing we passing the value to method like,
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.method(2, 3);//pass by value
}
void method(int i, int j)
{
Console.WriteLine("pass by value : "+(i + j).ToString());
}
}
Reference type parameter passing:
In reference parameter passing passing the varible or object reference to method.
class Program
{
static void Main(string[] args)
{
int i = 5, j = 5;
method1(ref i, ref j); //pass by ref
}
static void method1(ref int i, ref int j)
{
Console.WriteLine("pass by reference : " + ((i+1) + (j+1)).ToString());
}
}
When we passing reference we can change the value of that variable.(i.e) here we passing i and j value to method1.so there we can change the i and j value.by we can't do this in value passing.
Output parameter passing:
The output parameter passing is same like reference parameter . the simple difference is when you using output parameter no need to assign value to variable.
class Program
{
static void Main(string[] args)
{
int i = 5, j = 5,i1,j1;
method2(out i1,out j1);//output parameter
}
static void method2(out int i, out int j)
{
i=10;j=10;
Console.WriteLine("output parameter : " + (i + j).ToString());
}
}
Parameter array passing:
The parameter array can pass value and reference as array.
class Program
{
static void Main(string[] args)
{
int[] x = { 1, 2, 3 };
method3(x);
method3(4, 5);
}
foreach (int x in numbers)
{
Console.Write(x + " ");
}
Console.ReadLine();
}