2012-04-25 15 views
1

の冗長性を回避することは、それは次のようになります。は、オブジェクトのプロパティを更新

var myEntity = new MyEntity() 
{ 
    Field1 = "myValue", 
    Field2 = "myOtherValue", 
    ... 
} 

これはmyEntity.Field1多くの時間を記述する必要がなくなります。

複数のプロパティを更新する必要がある場合、コードの繰り返しを避ける方法はありません。ですから、現時点で私は次のようにしています:

myEntity.Field1 = "myNewValue"; 
myEntity.Field2 = "myOtherNewValue"; 
... 

C#では複数のプロパティをより簡潔に更新できますか?

+0

が必要です。 – Jeff

+2

フィールドをパラメータとしてUpdateEntityとしてメソッドを作成し、このメソッドを再利用しないのはなぜですか? – daryal

答えて

1

Nope。 VB.NETにはWith statementがありますが、C#には同等のものはありません。

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 keywords equivalent」と一緒に行くだろう。

注: - C#はその構文を実装している場合はおろかこのソリューションは、私はあなたが現在持っているものよりもより簡潔な取得することも可能であるのかはわからないのC#4

関連する問題