错误:不包含带0参数的构造函数

时间:2014-01-08 15:58:40

标签: c# inheritance

我从下面的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

有没有人有任何想法?对不起,如果我错过了一些愚蠢的事情。提前致谢

2 个答案:

答案 0 :(得分:3)

您需要手动添加默认的parameterless构造函数

public Holiday ()
{ 
   ...
}

可能你试图创建一个Holiday实例而不传递任何这样的参数:

var holiday = new Holiday();

或:

var cultural = new CulturalHoliday();

默认情况下,所有类都从Object class继承默认的无参数构造函数。但是如果添加一个带有一些参数的构造函数,则需要手动添加无参数构造函数。

答案 1 :(得分:0)

问题出在其他地方,你不应该需要一个无参数的构造函数,除非该类被序列化。

您必须提供更多信息,即产生错误的确切行,类Holiday的构造函数(至少是签名)以及类Holiday继承的类。