Introduction:
Here I will explain difference between ref and out parameters in c#.net with example. Both ref and out parameters are used to pass arguments within a method. These ref and out parameters are useful whenever your method wants to return more than one value. Regarding ref parameter you need to initialize it before passing to the method and out parameter you don’t need to initialize before passing to function.
Description:
In
previous posts I explained difference between wcf and web
application,
interview questions in asp.net, sql
server, c#,
Difference between functions and stored
procedures in SQL Server, difference between len and datalength
in sql server
and many articles relating to interview questions. Now I will explain difference between
ref and out parameters in c#.net with example.
Ref Parameter
If you want to pass a
variable as ref parameter you need to initialize it before you pass it as ref
parameter to method. Ref keyword will pass parameter as a reference this means
when the value of parameter is changed in called method it get reflected in
calling method also.
Declaration of Ref Parameter
Generally
we will use ref parameters like as shown below
int i=3; // variable need to be
initialized
Refsample(ref
i);
|
If
you observe above code first we declared variable and initialized with value 3
before it pass a ref parameter to Refsample
method
Example
class Program
{
static void Main()
{
int i; // variable need to be
initialized
i = 3;
Refsample(ref
i);
Console.WriteLine(i);
}
public static void Refsample(ref int val1)
{
val1 += 10;
}
}
|
When
we run above code we will get like as shown below
Output
*********Output************
13
*********Output************
|
As
we discussed if ref parameter value changed in called method that parameter
value reflected in calling method also
Out Parameter
If you want to pass a
variable as out parameter you don’t need to initialize it before you pass it as
out parameter to method. Out keyword also will pass parameter as a reference but
here out parameter must be initialized in called method before it return value
to calling method.
Declaration of Out Parameter
Generally
we will use out parameters like as shown below
int i,j; // No need to initialize
variable
Outsample(out
i, out j);
|
If
you observe above code first we declared variable and we it pass a out
parameter to Outsample method
without initialize the values to variables
Example
class Program
{
static void Main()
{
int i,j; // No need to initialize
variable
Outsample(out
i, out j);
Console.WriteLine(i);
Console.WriteLine(j);
}
public static int Outsample(out int val1, out int val2)
{
val1 = 5;
val2 = 10;
return 0;
}
}
|
If
we observe code we implemented as per our discussion like out parameter values
must be initialized in called method before it return values to calling method
When
we run above code we will get like as shown below
Output
*********Output************
5
10
*********Output************
|
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
|
|||
24 comments :
Nice
Very Nice Suresh
Thanks Suresh, smart-1 Article
Realy too good and simply explained
Easy way to understand ref and out parameter
very useful.......
Nice article. Really helping.
thanks sir , nice article...............
article is so helpful.....
Nicely dealt Sir,Thank You.
Very good description of ref and out keyword purpose.
nice explanation...
Very easy to understand. Nice article suresh
Nice simple explain...
Excellent explation..
Nice...
good one (y)
Very good article but you said that ref and out parameters useful when the method has to return more than 1 value. How to achieve that.?
Very well explained.
Very Nice
Thanks for sharing the knowledge , Very helpful !!
Simple and easy understanding, Example added well ..
really great
Note: Only a member of this blog may post a comment.