Does C# support a variable number of arguments, and how?

前端 未结 4 932
自闭症患者
自闭症患者 2020-11-27 19:17

Does C# support a variable number of arguments?

If yes, How does C# support variable no of arguments?

What are the examples?

How are variable argum

4条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-27 19:57

    Yes. The classic example wourld be the params object[] args:

    //Allows to pass in any number and types of parameters
    public static void Program(params object[] args)
    

    A typical usecase would be passing parameters in a command line environment to a program, where you pass them in as strings. The program has then to validate and assign them correctly.

    Restrictions:

    • Only one params keyword is permitted per method
    • It has to be the last parameter.

    EDIT: After I read your edits, I made mine. The part below also covers methods to achieve variable numbers of arguments, but I think you really were looking for the params way.


    Also one of the more classic ones, is called method overloading. You've probably used them already a lot:

    //both methods have the same name and depending on wether you pass in a parameter
    //or not, the first or the second is used.
    public static void SayHello() {
        Console.WriteLine("Hello");
    }
    public static void SayHello(string message) {
        Console.WriteLine(message);
    }
    

    Last but not least the most exiting one: Optional Arguments

    //this time we specify a default value for the parameter message
    //you now can call both, the method with parameter and the method without.
    public static void SayHello(string message = "Hello") {
        Console.WriteLine(message);
    }
    

    http://msdn.microsoft.com/en-us/library/dd264739.aspx

提交回复
热议问题