我需要有关多个类构造函数的帮助。我不想重复我的代码,但是如何呢?
public EventModel(string name, DateTime startTime, DateTime endTime)
: base(name)
{
StartTime = startTime;
EndTime = endTime;
}
public EventModel(Guid id, string name, DateTime startTime, DateTime endTime)
: base(id, name)
{
StartTime = startTime;
EndTime = endTime;
}
我看起来像这样:
public EventModel(Guid id, string name, DateTime startTime, DateTime endTime)
: this(name, startTime, endTime), base(id, name)
{
}
最佳答案
通常在这种情况下,我会将代码重构为通用方法,这样做的缺点是您不能设置readonly
字段。
public EventModel(string name, DateTime startTime, DateTime endTime)
: base(name)
{
Initialize(startTime, endTime);
}
public EventModel(Guid id, string name, DateTime startTime, DateTime endTime)
: base(id, name)
{
Initialize(startTime, endTime);
}
private void Initialize(DateTime startTime, DateTime endTime)
{
StartTime = startTime;
EndTime = endTime;
}
关于c# - 如何避免使用多个构造函数重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835619/