gpt4 book ai didi

c# - 如何避免使用多个构造函数重复代码?

转载 作者:行者123 更新时间:2023-11-30 20:48:17 25 4
gpt4 key购买 nike

我需要有关多个类构造函数的帮助。我不想重复我的代码,但是如何呢?

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com