我从下面的c#代码中收到错误“不包含带0参数的构造函数”:
public class Holiday
{
string startDate, endDate, firstName, lastName, emailAddress, numberOfGuests;
private double Cost = 100;
public Holiday(string start, string end, string first, string last, string email, string guestCount)
{
startDate = start;
endDate = end;
firstName = first;
lastName = last;
emailAddress = email;
numberOfGuests = guestCount;
}
public double test
{
get { return Cost; }
}
}
public class AdventureHoliday : Holiday
{
public AdventureHoliday(string start, string end, string first, string last, string email, string guestCount)
: base(start, end, first, last, email, guestCount)
{
}
public double totalcost()
{
double adventureAdditional = 0.50;
double xcost = test + (test * adventureAdditional);
return xcost;
}
}
public class CulturalHoliday : Holiday
{
public CulturalHoliday(string start, string end, string first, string last, string email, string guestCount)
: base(start, end, first, last, email, guestCount)
{
}
public double totalcost()
{
double culturalAdditional = 1.0;
double xcost = test + (test * culturalAdditional);
return xcost;
}
我已经查看了这个问题的各个线程,他们似乎都表明应该通过添加来解决问题:
: base(start, end, first, last, email, guestCount)
我已将此添加到第二个类,但仍然收到错误。我在201和125行的探险假日和文化假期都得到了这个 (公共课AdventureHoliday:假日)
和
public class CulturalHoliday : Holiday
有没有人有任何想法?对不起,如果我错过了一些愚蠢的事情。提前致谢
答案 0 :(得分:3)
您需要手动添加默认的parameterless
构造函数
public Holiday ()
{
...
}
可能你试图创建一个Holiday实例而不传递任何这样的参数:
var holiday = new Holiday();
或:
var cultural = new CulturalHoliday();
默认情况下,所有类都从Object
class继承默认的无参数构造函数。但是如果添加一个带有一些参数的构造函数,则需要手动添加无参数构造函数。
答案 1 :(得分:0)
问题出在其他地方,你不应该需要一个无参数的构造函数,除非该类被序列化。
您必须提供更多信息,即产生错误的确切行,类Holiday的构造函数(至少是签名)以及类Holiday继承的类。