Coding Villa Forum
FAQs
Advertisements

What are uses and Benefits of Param keywords in C#

Iram Online 6/28/2012 2:23:00 PM

Hello Friends!

I want to know why we use Param keyword in .net. What are its uses and benefits. Please explain the use of Param keyword in following code sample.


class Program
      {
            static void Main(string[] args)
             {
                 int y = Add(10,20,30,40,50);
                Console.WriteLine("The Addition of Numbers are : " + y);
               Console.ReadLine();
             }

static int Add(params int[] listNumbers)
            {
                int Total = 0;
              foreach (int i in listNumbers)
                {
                   Total = i + Total;
                }
    return Total;
           }
     }


Thanks

Share with Friends

Advertisements

Answer

Mehmood Online 6/29/2012 12:48:12 AM

Below sample and text has been collected from MSDN.

I though this could be the better explanation than me.

see below:


The params keyword lets you specify a method parameter that takes a variable number of arguments.

You can send a comma-separated list of arguments of the type specified in the parameter declaration, or an array of arguments of the specified type. You also can send no arguments.

No additional parameters are permitted after the params keyword in a method declaration, and only one params keyword is permitted in a method declaration.



Example

--------------------------------------------------------------------------------



The following example demonstrates various ways in which arguments can be sent to a params parameter.




C#



Copy



public class MyClass
{
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}

public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}

static void Main()
{
// You can send a comma-separated list of arguments of the
// specified type.
UseParams(1, 2, 3, 4);
UseParams2(1, 'a', "test");

// A params parameter accepts zero or more arguments.
// The following calling statement displays only a blank line.
UseParams2();

// An array argument can be passed, as long as the array
// type matches the parameter type of the method being called.
int[] myIntArray = { 5, 6, 7, 8, 9 };
UseParams(myIntArray);

object[] myObjArray = { 2, 'b', "test", "again" };
UseParams2(myObjArray);

// The following call causes a compiler error because the object
// array cannot be converted into an integer array.
//UseParams(myObjArray);

// The following call does not cause an error, but the entire
// integer array becomes the first element of the params array.
UseParams2(myIntArray);
}
}
/*
Output:
1 2 3 4
1 a test

5 6 7 8 9
2 b test again
System.Int32[]
*/



Share with Friends

Post reply

 

Enter This Code
Captcha
 

Subscribe

Email me when people reply


Subscribe to the