这个问题已经在这里有了答案 :
设置C#可选参数的默认值 (3个答案)
7年前关闭。
如何定义一个函数,该函数将带有空数组的可选数组作为默认值?
public void DoSomething(int index, ushort[] array = new ushort[] {}, bool thirdParam = true)
结果是:
“数组”的默认参数值必须是编译时常量。
您不能创建对象引用的编译时常量。
您可以使用的唯一有效的编译时常量是null,因此将代码更改为此:
null
public void DoSomething(int index, ushort[] array = null, bool thirdParam = true)
然后在您的方法中执行以下操作:
array = array ?? new ushort[0];
(来自注释) 从C#8开始,您还可以使用较短的语法:
array ??= new ushort[0];