The default behavior of passing the parameter
can be modified using the following parameter arguments (also called as method
parameter keywords).
1. Out Parameter
It can be used to receive more than one
processed output from a method. May not be initialized before the the method
call. should be assigned with a value inside the method. 'out' keyword must be
specified in both method call and methos declaration. method call can not pass
direct values, this will result in compiler error.
2. Ref Parameter
It can be used to pass variables by reference.
Should be initialized before the method call. 'ref' keyword must be specified in
both method call and method definition. Method call can not pass direct values,
this will result in compile time error.
3. Params Parameter
It can be used to pass zero or more values to a single parameter. Should be the
last parameter in the parameter list. A method can have only one params
parameter. It must be a single dimension array. The 'params' keyword must be
specified only in the method definition.
Example
ParameterTypes.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyTestConsole.DemoClasses
{
public class ParameterTypes
{
#region Types Of Parameter
public int num = 10;
//out parameter
/* Method Definition */
public int outParameter(out int numVal)
{
numVal = num + 10;
return numVal;
}
//ref parameter
/* Method Definition */
public int refParameter(ref int n)
{
return num + n;
}
//params parameter
/* Method Definition */
public void paramsParameter(int n, params int[] lst)
{
for (int i = 0; i < n; i++)
{
Console.WriteLine(lst[i]);
}
}
#endregion
}
}
using MyTestConsole.DemoClasses;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
using System.Globalization;
namespace MyTestConsole
{
class Program
{
static void Main()
{
Console.WriteLine("!! My First Console App !!");
Console.WriteLine();
#region Parameter Types
//out can not take values
int outVal;
ParameterTypes pt = new ParameterTypes();
Console.WriteLine("*** out Parameter ***");
var a = pt.outParameter(out outVal); /* Method Call */
Console.WriteLine("{0}", a);
//ref first initialize
var refVal = 20;
Console.WriteLine();
Console.WriteLine("*** ref Parameter ***");
var b = pt.refParameter(ref refVal); /* Method Call */
Console.WriteLine("{0}", b);
////params method definition only, method can have only one params //para, single dimentional
int[] lst = { 1, 2, 3, 4, 5 };
var n = lst.Length;
Console.WriteLine();
Console.WriteLine("*** params Parameter ***");
pt.paramsParameter(n, lst);
#endregion
Console.WriteLine();
Console.WriteLine("!! Finish !!");
Console.ReadKey();
}
}
}
Output

Join the conversation! Your thoughts help the community grow.