【问题标题】:C# Default Parameters being yelled aboutC# 默认参数被大喊大叫
【发布时间】:2015-10-28 16:36:14
【问题描述】:

我有一个网络应用程序,我的任务是尝试调试和修复。不是我的代码。 该应用程序的目标是 4.0 框架,据我所知,它也是 C# version 4.0

网站无法编译,并出现以下错误:Default parameter specifiers are not permitted.

它在两个地方抱怨,这里是其中之一:

private static void setDateCell(string cellXY, object value, string format = "MM/dd/yyyy") {

另一个地方是类似的函数声明,但用于数字并具有不同的默认格式。

据我从here 得知,C# 的 v4.0 是在引入默认参数的时候。我已经仔细检查了网站属性页,以确保它针对的是 Framework 4.0。所以我不确定它为什么抱怨有可选参数。

我试过运行aspnet_regiis -i;不开心。

有什么想法吗?

我们使用的是 VS2010 Express。我们目前正在安装 VS2015 Express... 看看是否是 2010 的问题。

【问题讨论】:

  • 这可能是因为 Web 服务或 Web 应用程序不支持默认参数。而且我认为重载也不支持,所以你不能添加两个同名但参数不同的动作。处理它的方法是,如果为 format 传递了空白或 null,然后将其重置为 "MM/dd/yyyy"

标签: c# asp.net c#-4.0 optional-parameters


【解决方案1】:

检查Web.config<compilation> 节点的targetFramework 属性。 也许由于某种原因它被困在低于 4.0 的东西上。检查/修复此问题的另一种方法是将您的项目切换到 3.5,然后再次切换到 4.0。

【讨论】:

  • 嗯,它有那个属性,但是VS抱怨它,所以我把它拿出来了。这也是VS2010。我们现在正在机器上安装 VS2015,看看是否可能 2010 无法处理最新和最大的混乱。如果问题仍然存在,将尝试这些。
【解决方案2】:

感谢 Serge,他的回答让我明白了这个问题。 Visual Studio 2010 不支持使用该属性进行编译。我们在机器上安装了 VS2015,并在那里对其进行了编辑,然后我们能够针对更高的框架版本,并继续前进。

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 2018-12-21
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2015-06-21
    • 2011-03-23
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多