Оператор присваивания (=) в аргументе определения метода

#c# #.net

#c# #.net

Вопрос:

Смотрите определение метода ниже.

Как это называется в C #, где в параметре метода стоит знак равенства.

Выполняется ли инициализация параметра метода по умолчанию??

 public List<Iabc> MyMethod(out List<Ixyz> faces, Type typeXYZ = null, int flag = -1)
{
    //...
    //...   
}
  

ПРИМЕЧАНИЕ: Здесь Iabc и Ixyz указаны любые интерфейсы.

Ответ №1:

Они называются необязательными (или именованными) аргументами. В MSDN обычно эти вещи объясняются довольно хорошо:

Именованные и необязательные аргументы (Руководство по программированию на C #)

Ответ №2:

При использовании именованных аргументов имейте в виду, что изменение имен аргументов приведет к нарушению кода. (где используются именованные параметры)

Также помните, что значение по умолчанию фактически сохраняется на сайте вызова, что означает, что если вы в какой-то более поздний момент измените значение по умолчанию, код, который вызывает метод и был скомпилирован до изменения, все равно будет использовать старое значение. это может не иметь значения во всех ситуациях, но об этом следует знать.

Ответ №3: