我有这个类:C#构造函数 - 设置第二个属性
public class CalendarData_Day
{
public DateTime Date { get; set; }
public DayType TypeOfDay { get; set; }
public bool Choose { get; set; }
public CalendarData_Day(DateTime datum) : this(datum, DayType.Normal, true)
{
}
public CalendarData_Day(DateTime datum, DayType typDne) : this(datum, typDne, true)
{
}
public CalendarData_Day(DateTime datum, DayType typDne, bool vybran)
{
this.Date = datum;
this.TypeOfDay = typDne;
this.Choose = vybran;
}
}
,我想在第二个构造检查,如果DayType是周末,如果是则不会发送到选择正确的,但假的。任何人都知道我该怎么做? 我知道我可以添加到最后的构造函数,如果和检查,但它不适合我。我认为有更好的办法,我认为我应该做的另一种方式,或者这是去年构造器好吗:
if (TypeOfDay == DayType.Weekend)
this.Choose = false;
我知道it's工作,但我不知道这是正确的方式。
编辑: 我很抱歉,我没有解释一切。有2个以上的DayTypes,假设有假日,工作......我希望该用户可以用第二个构造函数调用类,如果DayType是周末假日,那么选择必须是假的,但如果它是正常的或工作应该是真实的,或者用户必须使用最后的构造函数,并将DayType设置为工作并选择为false。这很复杂我很抱歉,我应该第一次写这个。
我喜欢你的解决方案,但我很抱歉忘记提及它不仅仅是DayType.Weekend和Normal,它可能更多类型,所以我认为我必须在最后一个构造函数中设置属性两次。 –
@Bibo:为什么?我的方法确实如你所描述的那样 - 如果'typeDne'是Weekend,则选择将为false,否则为true ...并且为什么要重写直接调用最后一个构造方法时用户传入的内容?如果*真*是你的意图,请编辑你的问题来澄清它。考虑如果用户*直接*调用'新的CalendarData_Day(日期,DayType.Weekend,真)会发生什么' –
周末应该永远是假的,但你是对的,它可以在一些情况下混乱,所以我编辑我的帖子。 –