避免在更新对象属性时出现冗余
本文关键字:冗余 属性 对象 更新 | 更新日期: 2023-09-27 18:32:09
当我实例化一个新实体时,它看起来像这样:
var myEntity = new MyEntity()
{
Field1 = "myValue",
Field2 = "myOtherValue",
...
}
这避免了多次写入myEntity.Field1
。
但是当我必须更新多个属性时,我不知道有什么方法可以避免代码重复。所以目前,我确实喜欢这个:
myEntity.Field1 = "myNewValue";
myEntity.Field2 = "myOtherNewValue";
...
C# 是否允许以更简洁的方式更新多个属性?
使用等效关键字查看 C#。这有点草率,但它是最接近 VB.NET With 语句的。
另请查看此博客文章:C# 中"With"语句的简单等效项
按照@daryal上面的评论,您可以创建一个更新方法,所有参数都是可选的:
public void UpdateEntity(string Field1 = null, string Field2 = null, string Field3 = null)
{
this.Field1 = Field1 ?? this.Field1;
this.Field2 = Field2 ?? this.Field2;
this.Field3 = Field3 ?? this.Field3;
}
然后使用命名参数调用它:
e.UpdateEntity(Field1: "foo", Field3: "fiz");
这不是最干净的解决方案,而是另一种选择。如果我一直在做这样的事情,我可能会使用@Brian共享的"带有等效关键字的 C#"。
注意:此解决方案需要 C# 4。
不,VB.NET 有 With 语句,但在 C# 中没有等效语句。