当我实例化一个新实体时,它看起来像这样:
var myEntity = new MyEntity()
{
Field1 = "myValue",
Field2 = "myOtherValue",
...
}
这可以避免多次写myEntity.Field1
。
但是当我必须更新多个属性时,我不知道有什么办法可以避免重复代码。所以此刻,我确实喜欢这个:
myEntity.Field1 = "myNewValue";
myEntity.Field2 = "myOtherNewValue";
...
C#是否允许更简洁的方式更新多个属性?
答案 0 :(得分:6)
查看C# with keyword equivalent。这有点草率,但它是最接近VB.NET With statement的。
答案 1 :(得分:2)
继续上面的@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#with keyword equivalent”。
注意:此解决方案需要C#4。
答案 2 :(得分:1)
不。 VB.NET有With statement,但在C#中没有等价物。