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

标签 c#

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

    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/

相关文章:

c# - asp.net 中的时区偏移

c# - .NET Core MVC 通用 Controller View

c# - 带有 CaSTLe windsor 的 WCF Web 服务客户端

c# - 在运行时为报表设置数据源?

c# - 打开签名 PDF 时出现 "At least one signature has problems” 消息

c# - 为什么这个通用 C# WeakEvent 监听器不起作用?

c# - "System.InvalidOperationException: The object is currently in use elsewhere"- 我该如何解决这个问题?

c# - 在 .Net 客户端中创建多个 Signalr hub 代理

c# - 如何在C#中使用抽象类

c# - mscorlib.dll 中出现 'System.UnauthorizedAccessException' 类型的异常,但未在用户代码中处理