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

Ниже мой код.

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 ]

27 голосов
/ 18 июня 2011

Проблема в том, что вы не можете иметь необязательные параметры в версии C # меньше 4.
Вы можете найти больше информации об этом здесь .

Вы можете решить это следующим образом:

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;
  }
}
4 голосов
/ 11 апреля 2012

Если ваш проект настроен как .NET 4.0, измените его, например, на 3.5, а затем снова на 4.0.Я получил эту ошибку, когда я включил проект библиотеки классов из моего старого решения в новое, когда я хотел, чтобы проект был в моем новом программном обеспечении.Оба решения были .NET 4, но я получил ошибку «спецификаторы параметров по умолчанию запрещены»Я просто сделал то, что объяснил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...