编译器错误“不允许使用默认参数说明符”

时间:2011-06-18 19:28:43

标签: c# compiler-errors .net-3.5 default-parameters

以下是我的代码。

public class PItem
{
    public String content;
    public int count;
    public int fee;
    public int amount;
    public string description;

    // Default values
    public PItem(String _content = "", int _count = 0, int _fee = 0, string _description = "", int _amount = 0)
    {
        content = _content;
        count = _count < 0 ? 0 : _count;
        fee = _fee;
        description = _description;
        amount = _amount < 0 ? 0 : _amount;
    }
}

这是在课堂内。当我尝试运行程序时,会出现此错误:

  

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

如何解决此错误?

2 个答案:

答案 0 :(得分:27)

问题是您不能在C#版本中使用小于4的可选参数。
您可以在here找到更多相关信息。

你可以这样解决:

public class PItem
{
  public String content;
  public int count;
  public int fee;
  public int amount;
  public String description;
  // default values
  public PItem(): this("", 0, 0, "", 0) {}
  public PItem(String _content): this (_content, 0, 0, "", 0) {}
  public PItem(String _content, int _count): this(_content, _count, 0, "", 0) {}
  public PItem(String _content, int _count, int _fee): this(_content, _count, _fee, "", 0) {}
  public PItem(String _content, int _count, int _fee, string _description): this(_content, _count, _fee, _description, 0) {}
  public PItem(String _content, int _count, int _fee, string _description, int _amount)
  {
      content = _content;
      count = _count < 0 ? 0 : _count;
      fee = _fee;
      description = _description;
      amount = _amount < 0 ? 0 : _amount;
  }
}

答案 1 :(得分:4)

如果您的项目似乎设置为.NET 4.0,则将其更改为例如3.5,然后再次更改为4.0。当我想要在我的新软件中安装项目时,我将旧的解决方案解决方案中的类库项目包含到新的解决方案中时出现此错误。两个解决方案都是.NET 4,但我得到“不允许使用默认参数说明符”错误。我刚刚做了我解释过的事。