Tuesday 27 August 2013

What is ref keyword in C#

What is “ref” keyword in C#

“ref Keyword” in C#.

Passing variables by value is the default. However, we can force the value parameter to be passed by reference. 

Point to be kept in mind while using ref keyword.
variable “must” be initialized before it is passed into a method.


Example, Without Using ref keyword
class Test
{
public static void Main()
{
int a = 1;
DoWork(a);
Console.WriteLine("The value of a is " + a); 
}

public static void DoWork(int i)
{
i++;
}
}
The program will result in : The value of a is 1


Example, With the Use of ref keyword
class Test
{
public static void Main()
{
int a = 2; // must be initialized
DoWork(ref a); // note ref Keyword
Console.WriteLine("The value of a is " + a); 
}

public static void DoWork(ref int i) // note ref Keyword
{
i++;
}
}
The program will result : The value of a is 3

What is “out” keyword in C#

What is “out” keyword in C#

“out Keyword” in C#.

out keyword is used for passing a variable for output purpose. It has same concept as ref keyword, but passing a ref parameter needs variable to be initialized while out parameter is passed without initialized. 
It is useful when we want to return more than one value from the method.

Point to be kept in mind while using out keyword.
You must assigned value to out parameter in method body, otherwise the method won’t compiled.

Example of “out keyword”:
class Test
{
public static void Main()
{
int a; // may be left un-initialized
DoWork(out a); // note out keyword
Console.WriteLine("The value of a is " + a); 
}

public static void DoWork(out int i) // note out keyword
{
i=12; //must assigned value.
}
}

The program will result : The value of a is 12