小编典典

将空数组作为可选参数的默认值传递

c#

这个问题已经在这里有了答案

设置C#可选参数的默认值 (3个答案)

7年前关闭。

如何定义一个函数,该函数将带有空数组的可选数组作为默认值?

public void DoSomething(int index, ushort[] array = new ushort[] {},
 bool thirdParam = true)

结果是:

“数组”的默认参数值必须是编译时常量。


阅读 505

收藏
2020-05-19

共1个答案

小编典典

您不能创建对象引用的编译时常量。

您可以使用的唯一有效的编译时常量是null,因此将代码更改为此:

public void DoSomething(int index, ushort[] array = null,
  bool thirdParam = true)

然后在您的方法中执行以下操作:

array = array ?? new ushort[0];

(来自注释) 从C#8开始,您还可以使用较短的语法:

array ??= new ushort[0];
2020-05-19