【问题标题】:Default parameter specifiers are not permitted不允许使用默认参数说明符
【发布时间】:2011-12-10 23:15:03
【问题描述】:

我有以下给出错误的代码

不允许使用默认参数说明符

如何解决这个问题?

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

【问题讨论】:

标签: c# .net .net-3.5 c#-3.0


【解决方案1】:

根据您的错误消息,您无法在 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;
}

【讨论】:

  • 嗨 LarsTech 我在界面中做这项工作,因此它不允许定义函数的定义,你能推荐任何其他解决方案吗?
  • @user1003290 不,你不会让它在界面中工作。该接口必须具有所有多个构造函数,然后在使用该接口的类中,您必须设置默认值。仅从界面无法完成。
【解决方案2】:

我刚刚遇到这个错误,我的项目也是针对 4.0 而不是 3.5 或以下。

我将它切换到 3.5,然后再切换回 4.0,然后错误就消失了。希望这些步骤对您或其他人有用。

【讨论】:

  • 为了补充这一点,几年后,切换添加了一个 targetFramework="4.0" 到 Web.config 的 节点,也可以手动添加它来解决这个问题。跨度>
【解决方案3】:

应用程序/类库未设置为面向 .NET 4 Framework。在项目的设置页面进行调整。

【讨论】:

  • OK p.campbell 但在 .net framework 3.5 中是否没有任何替代方案
【解决方案4】:

可选参数是 C# 4 的一项功能,在早期版本中不存在。由于您使用的是 .NET 3.5,因此不能使用可选参数。

要么切换到 .NET 4.0,要么改用重载方法。

【讨论】:

猜你喜欢
  • 2013-12-27
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 2014-12-10
  • 1970-01-01
相关资源
最近更新 更多