11

以下は私のコードです。

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

これはクラス内です。プログラムを実行しようとすると、次のエラーが発生します。

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

このエラーを解決するにはどうすればよいですか?

4

2 に答える 2

27

問題は、4未満のC#バージョンではオプションのパラメーターを使用できないことです。
これについて詳しくは、こちらをご覧ください。

あなたはこのようにそれを解決することができます:

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;
  }
}
于 2011-06-18T19:38:44.950 に答える
4

プロジェクトが .NET 4.0 に設定されているように見える場合は、たとえば 3.5 に変更してから、再度 4.0 に変更します。新しいソフトウェアでプロジェクトを使用したいときに、古いソリューション ソリューションから新しいソリューションにクラス ライブラリ プロジェクトを含めたときに、このエラーが発生しました。どちらのソリューションも.NET 4でしたが、「デフォルトのパラメーター指定子は許可されていません」というエラーが発生しました。説明したことをしただけです。

于 2012-04-10T22:56:49.160 に答える