我必须对其中一个用核心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; }
}
不确定是否使用了代码生成器或模板,但这在所有实体中都很常见,并且想知道它周围是否存在模式。我从未遇到过这种代码,并想知道它是否有意义。
为什么同一个实体是重载构造函数的参数,如何才能使用它,因为必须先创建实体才能将其传递给重载?
答案 0 :(得分:2)
这是一个复制构造函数,允许克隆类似的对象。通常,构造函数将设置的值多于示例中的值。