Passing an empty array as default value of an optional parameter [duplicate]

This question already has an answer here:

How does one define a function that takes an optional array with an empty array as default?

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

results in:

Default parameter value for 'array' must be a compile-time constant.

81
задан colinfang 4 May 2016 в 22:22
поделиться

1 ответ

Вы не можете создавать константы времени компиляции для ссылок на объекты.

Единственная допустимая константа времени компиляции, которую вы можете использовать, это null , поэтому измените свой код на этот:

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

А внутри вашего метода сделайте следующее:

array = array ?? new ushort[0];
119
ответ дан 24 November 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: