Спецификаторы параметров по умолчанию не разрешены - PullRequest
9 голосов
/ 19 октября 2011

У меня есть следующий код, который выдает ошибку

Спецификаторы параметров по умолчанию запрещены

Как это можно исправить?

bool listSubscribe(string apikey,
                   string id, 
                   string email_address,
                   string [] merge_vars,
                   string email_type="html",
                   bool double_optin=false,
                   bool replace_interests=true,
                   bool send_welcome=false);

bool listUnsubscribe(string apikey, 
                     string id, 
                     string email_address, 
                     bool delete_menber=false,
                     bool send_goodbye=true,
                     bool send_notify=true);

Ответы [ 4 ]

18 голосов
/ 19 октября 2011

Согласно вашему сообщению об ошибках, вы не можете сделать это в версии 3.5.

Обходной путь - несколько конструкторов:

bool listUnsubscribe(string apikey, 
                     string id, 
                     string email_address) {
  return listUnsubscribe(apikey, id, email_address, false, true, true);
}

bool listUnsubscribe(string apikey, 
                     string id, 
                     string email_address, 
                     bool delete_menber,
                     bool send_goodbye,
                     bool send_notify) {
  return whatever;
}
9 голосов
/ 28 января 2012

Я только что столкнулся с этой ошибкой, и мой проект также нацелен на 4.0, а не на 3.5 или ниже.

Я переключил его на 3.5, а затем снова на 4.0, а затем ошибка ушла.Надеюсь, что эти шаги будут работать для вас или кого-то еще.

7 голосов
/ 19 октября 2011

Библиотека приложений / классов не настроена на целевую платформу .NET 4 Framework. Настройте на странице настроек проекта.

enter image description here

4 голосов
/ 19 октября 2011

Необязательные параметры - это особенность C # 4, отсутствующая в более ранних версиях.Поскольку вы используете .NET 3.5, вы не можете использовать дополнительные параметры.

Либо переключитесь на .NET 4.0, либо используйте вместо этого перегруженные методы.

...