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
  1. Value type parameter passing
  2. 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();

}