'订单'不包含采用0参数的构造函数

'订单'不包含采用0参数的构造函数

问题描述:

我收到'订单'不包含具有0参数的构造函数。所以基于这个错误,我知道它在我的公共类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; 
     } 
    } 
} 
+0

既然你被推动产生这个类的构造函数,并且没有这样做,而是决定“睡在它上面”,我将把这个问题作为一个非现实问题来解决在你解决问题之前,防止人们花费时间。您确实需要在上面的代码中生成订单类的构造函数,否则没有人有机会帮助您。 – 2012-04-17 08:23:23

+1

由于有些人在努力改善自己的同时工作两个工作,有时他们需要睡觉Lasse。我为成为人类而道歉。但我能弄清楚这个问题。是的,我没有任何参数在我的主程序中传递。一旦我将它们传递给类别订单,它就起作用了。感谢帮助我的每个人! – 2012-04-18 01:38:49

在您提供的代码中没有列出的Order类中必须有一个构造函数。

当您没有为某个类定义任何构造函数时,编译器将为您提供一个隐含的无参数构造函数。

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

你需要做的是以下之一:

  1. 添加一个明确的参数构造函数,恩。 public Order() {}

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

  3. 从预期参数的Order中移除构造函数。

+0

谢谢丹。这是一个简单的错误。我没有看到任何在我的Main中传递的参数。我一直专注于Order课程,忽略了它。 #2是修复。 – 2012-04-18 01:41:05

您可以收到错误信息的唯一方法是,如果你要么有:

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