Difference between the out and ref keyword in C#

To pass an argument by reference in C# , we use the keyword ref . There is also another keyword “out” which can also be used to pass an argument by reference .

Below is a sample code demonstrating the usage of the out and ref keyword.

class Employee
{
        /* usage of the pass by reference using the keyword out */
        public void SQRT1(out int i)
        {
            i = 10;
            i = i + i;
        }
        /* usage of the pass by reference using the keyword ref */
        public void SQRT2(ref int i)
        {
            i = 10;
            i = i + i;
        }
}
class Program
{
        public static void Main1()
        {
            Employee studentObj = new Employee();
            int i;
            studentObj.SQRT1(out i);
            int j=1;
            studentObj.SQRT2(ref j);
            Console.WriteLine("i: " + i);
        }
}

What is the difference between out and ref keyword in C# ?

The variable has to be initialized when it is passed by ref keyword . The variable need not be initialized when using the out keyword but the value should be assigned inside the calling function.

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Leave a Reply