Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#是否支持数量可变的参数,以及如何支持?_C#_.net_Variables_Arguments_Params - Fatal编程技术网

C#是否支持数量可变的参数,以及如何支持?

C#是否支持数量可变的参数,以及如何支持?,c#,.net,variables,arguments,params,C#,.net,Variables,Arguments,Params,C#是否支持数量可变的参数 如果是,C#如何支持变量数量的参数 这些例子是什么 变量参数如何有用 编辑1:对其有哪些限制 编辑2:问题不是关于可选参数,而是变量参数是的,: params必须是最后一个参数,并且可以是任何类型。不确定它必须是数组还是IEnumerable。C#支持使用params关键字的可变长度参数数组 这里有一个例子 public static void UseParams(params int[] list) { for (int i = 0; i < list

C#是否支持数量可变的参数

如果是,C#如何支持变量数量的参数

这些例子是什么

变量参数如何有用

编辑1:对其有哪些限制

编辑2:问题不是关于可选参数,而是变量参数是的,:

params必须是最后一个参数,并且可以是任何类型。不确定它必须是数组还是IEnumerable。

C#支持使用
params
关键字的可变长度参数数组

这里有一个例子

public static void UseParams(params int[] list)
{
    for (int i = 0; i < list.Length; i++)
    {
        Console.Write(list[i] + " ");
    }
    Console.WriteLine();
}
publicstaticvoiduseparams(参数int[]列表)
{
for(int i=0;i
还有更多的信息。

我想你指的是一个。如果是:

(或与固定参数混合)

限制:

  • 它们必须与数组的类型(或子类型)相同
  • 每个方法只能有一个
  • 它们必须在参数列表中位于最后

这就是我目前所能想到的,尽管可能还有其他人。查看文档了解更多信息。

是。经典的例子是
params对象[]args

//Allows to pass in any number and types of parameters
public static void Program(params object[] args)
一个典型的用例是将命令行环境中的参数传递给程序,在程序中作为字符串传递。然后,程序必须验证并正确分配它们

限制:

  • 每个方法只允许一个
    params
    关键字
  • 它必须是最后一个参数
编辑:在我读了你的编辑之后,我做了我的。下面的部分还介绍了实现可变数量参数的方法,但我认为您确实在寻找
params
方法


另一个比较经典的方法是方法重载。您可能已经多次使用它们:

//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);
}

最后但并非最不重要的一个:可选参数

//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);
}

如何使用JSON数据格式从Java通过RPC传递参数?
//Allows to pass in any number and types of parameters
public static void Program(params object[] args)
//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);
}
//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);
}