Introduction :
ref :
we can pass an argument as a referance with this keyword. If any changes happen in the methos then the value will be reflected in the calling method. The value of the ref variable mustbe initalized befour calling the methos. Static keyword we have to use in the method.
public static return_type method_name(ref variable_name)
{
// body of the method
}
out :
The functionality of out key word is also same like ref but here we can pass an argument without initalized the value. Here also static key word have to use.
Syntex:
public static return_type method_name(out variable_name)
{
// body of the method
}
Example :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace codePractice
{
class Program
{
static void Main(string[] args)
{
int x = 0, y = 10;
callFunction(ref x);
Console.WriteLine("value of x = " + x);
Console.WriteLine("Befour calling method value of y = " + y);
callFunction2(out y);
Console.WriteLine("value of y = " + y);
Console.ReadKey();
}
static void callFunction(ref int x)
{
x = 15;
}
static void callFunction2(out int y)
{
y = 15;
}
}
}
Output :
value of x = 15
Befour calling method value of y = 10
value of y = 15
Note :
In the method overloading time we can not use ref and out keyword at the same time.
Example :
static void Main(string[] args)
{
int x = 0, y = 10;
callFunction(ref x);
Console.WriteLine("value of x = " + x);
Console.WriteLine("Befour calling method value of y = " + y);
callFunction(out y);
Console.WriteLine("value of y = " + y);
Console.ReadKey();
}
static void callFunction(ref int x)
{
x = 15;
}
static void callFunction(out int y)
{
y = 15;
}
Error:
//Error 1 Cannot define overloaded method 'callFunction' because it differs from another method only on
ref and out
Comments
Post a Comment