web-dev-qa-db-ja.com

デフォルトのパラメーター指定子は許可されていません

エラーが発生する次のコードがあります

デフォルトのパラメーター指定子は許可されていません

これはどのように修正できますか?

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);

エラーメッセージによると、v3.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;
}
18
LarsTech

このエラーが発生しました。プロジェクトも3.5以下ではなく4.0を対象としています。

3.5に切り替えてから4.0に戻すと、エラーはなくなりました。うまくいけば、これらの手順はあなたや他の誰かのために働くでしょう。

9
wjfamilia

アプリケーション/クラスライブラリが.NET4Frameworkをターゲットに設定されていません。プロジェクトの設定ページで調整します。

enter image description here

7
p.campbell

オプションのパラメーターはC#4の機能であり、以前のバージョンにはありません。 .NET 3.5を使用しているため、オプションのパラメーターを使用することはできません。

.NET 4.0に切り替えるか、代わりにオーバーロードされたメソッドを使用してください。

4
Rik