Entity Constructor使用与参数相同的实体重载

时间:2013-12-10 12:38:49

标签: c# constructor coding-style

我必须对其中一个用核心C#编写的业务应用程序进行代码审查。框架包括实体,我在所有实体类中看到这种模式,其中重载的构造函数将实体作为参数。它的简化版本看起来像 -

public class SomeEntity
{
    public SomeEntity()
    {
        this.Name = string.Empty;
    }

    public SomeEntity(SomeEntity entity)
    {
        if (entity == null)
        {
            throw new System.ArgumentNullException("entity");
        }
        this.Name = entity.Name;
    }
    public string Name { get; set; }
}

不确定是否使用了代码生成器或模板,但这在所有实体中都很常见,并且想知道它周围是否存在模式。我从未遇到过这种代码,并想知道它是否有意义。

为什么同一个实体是重载构造函数的参数,如何才能使用它,因为必须先创建实体才能将其传递给重载?

1 个答案:

答案 0 :(得分:2)

这是一个复制构造函数,允许克隆类似的对象。通常,构造函数将设置的值多于示例中的值。

请参阅此处http://msdn.microsoft.com/en-us/library/ms173116.aspx