Подтвердить что ты не робот

Как пропустить необязательные параметры в С#?

Пример:

public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }

Я бы назвал это следующим образом:

int returnVal = foo(5,,8); 

Другими словами, я хочу предоставить x и z, но я хочу использовать значение по умолчанию для Y, optionalY = 1.

Visual Studio не нравится ,,

Пожалуйста, помогите.

4b9b3361

Ответ 1

Если это С# 4.0, вы можете использовать функцию именованных аргументов:

foo(x: 5, optionalZ: 8); 

Подробнее см. этот блог.

Ответ 2

В С# 4.0 вы можете назвать аргументы, возникающие после пропущенных значений по умолчанию, например:

int returnVal = foo(5, optionalZ: 8);

Это называется named arguments. Некоторые другие языки предоставляют эту функцию, и они обычно используют их вместо синтаксиса foo(5, optionalZ=8), что полезно знать при чтении кода на других языках.

Ответ 3

Еще один динамический способ подачи параметров по вашему выбору - реализовать свой метод в классе и указать именованные параметры для конструктора классов. Почему бы не добавить вызовы методов на одной и той же строке кода, как указано здесь: Как определить именованные параметры С#

var p = new PersonInfo {Name = "Peter", Age = 15}.BuildPerson();