'Order'不包含带0参数的构造函数

时间:2012-04-17 02:48:58

标签: c# constructor arguments

我得到'Order'不包含带0参数的构造函数。所以根据这个错误,我知道它在我的公共课程中。我在俯瞰什么?谢谢!

public class Order
{
    public int QuantityOrdered { get; set; }
    public double TotalPrice;
    public const double PRICEEACH = 19.95;

    virtual public double totalPrice
    {
        set
        {
            TotalPrice = QuantityOrdered * PRICEEACH;
        }
    }
}

public class ShippedOrder : Order
{
    public const double SHIPPINGFEE = 4.00; 
    public override double totalPrice
    {
        set
        {
            totalPrice = base.TotalPrice + SHIPPINGFEE;
        }
    }
}

2 个答案:

答案 0 :(得分:5)

您订购的代码中没有列出Order类中的构造函数。

如果没有为类定义任何构造函数,编译器会给出一个隐式无参数构造函数。

但是,当你添加一个带参数的构造函数时,例如。 public Order(string someString) {},你失去了这个隐式的构造函数。

您需要做的是以下之一:

  1. 添加一个显式的无参数构造函数,例如。 public Order() {}

  2. 更新实例化Order对象的代码,以传递它正在寻找的参数,例如。 new Order(someString)

  3. 从订单中删除期望参数的构造函数。

答案 1 :(得分:2)

您可以接收该错误消息的唯一方法是:

  1. 在您的类中包含1个或多个参数的构造函数。
  2. 一个构造函数,它接受0个参数,但是受保护或私有,并且您试图在访问之外调用构造函数。