【问题标题】:Function with variable number of arguments具有可变数量参数的函数
【发布时间】:2012-03-20 10:02:37
【问题描述】:

正如标题所说,我需要知道方法参数中是否有java的...对应的语法,比如

void printReport(String header, int... numbers) { //numbers represents varargs
  System.out.println(header);
  for (int num : numbers) {
     System.out.println(num);
  }
}

(代码由维基百科提供)

【问题讨论】:

标签: c# java function


【解决方案1】:

是的,你可以这样写:

void PrintReport(string header, params int[] numbers)
{
    Console.WriteLine(header);
    foreach (int number in numbers)
        Console.WriteLine(number);
}

【讨论】:

    【解决方案2】:

    尝试使用params关键字,放在语句之前,例如

    myFunction(params int[] numbers);
    

    【讨论】:

      【解决方案3】:

      是的,有。正如阿德里亚诺所说,您可以使用 C# 'params' 关键字。 一个例子是下面的链接:

      参数(C# 参考)

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

      "params 关键字可让您指定一个方法参数,该参数采用可变数量的参数。

      您可以发送以逗号分隔的参数声明中指定类型的参数列表,或指定类型的参数数组。您也可以不发送任何参数。

      方法声明中params关键字后面不允许有附加参数,方法声明中只允许一个params关键字。"

      【讨论】:

        【解决方案4】:

        您可以使用params 关键字声明一个方法来获取可变数量的参数。就像在 Java 中使用 ... 时一样,这将为您提供一个数组,并让您使用可变数量的参数调用方法: http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs.71).aspx

        【讨论】:

          【解决方案5】:

          这应该是

          void printReport(String header, params int[] numbers)
          

          【讨论】:

            【解决方案6】:

            我相信你的意思是params

            public void printReport(string header, params int[] list) 
            {
                Console.WriteLine(header);
            
                for (int i = 0 ; i < list.Length; i++)
                {
                    Console.WriteLine(list[i]);
                }
                Console.WriteLine();
            }
            

            【讨论】:

              猜你喜欢
              • 2011-12-24
              • 1970-01-01
              • 1970-01-01
              • 2018-08-14
              • 2011-01-21
              • 2023-03-12
              • 2014-11-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多