'订单'不包含采用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;
}
}
}
答
在您提供的代码中没有列出的Order类中必须有一个构造函数。
当您没有为某个类定义任何构造函数时,编译器将为您提供一个隐含的无参数构造函数。
但是,当你添加一个带参数的构造函数时, public Order(string someString) {}
,您将失去此隐式构造函数。
你需要做的是以下之一:
添加一个明确的参数构造函数,恩。
public Order() {}
更新实例化Order对象以传递它正在查找的参数的代码,例如,
new Order(someString)
从预期参数的Order中移除构造函数。
+0
谢谢丹。这是一个简单的错误。我没有看到任何在我的Main中传递的参数。我一直专注于Order课程,忽略了它。 #2是修复。 – 2012-04-18 01:41:05
答
您可以收到错误信息的唯一方法是,如果你要么有:
- 一个构造函数1个或多个参数中的类。
- 一个构造函数,它接受0个参数,但是是protected或private,并且您试图在访问之外调用构造函数。
既然你被推动产生这个类的构造函数,并且没有这样做,而是决定“睡在它上面”,我将把这个问题作为一个非现实问题来解决在你解决问题之前,防止人们花费时间。您确实需要在上面的代码中生成订单类的构造函数,否则没有人有机会帮助您。 – 2012-04-17 08:23:23
由于有些人在努力改善自己的同时工作两个工作,有时他们需要睡觉Lasse。我为成为人类而道歉。但我能弄清楚这个问题。是的,我没有任何参数在我的主程序中传递。一旦我将它们传递给类别订单,它就起作用了。感谢帮助我的每个人! – 2012-04-18 01:38:49