1

新しいエンティティをインスタンス化すると、次のようになります。

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

myEntity.Field1これにより、何度も書く必要がなくなります。

しかし、複数のプロパティを更新する必要がある場合、コードの繰り返しを回避する方法がわかりません。だから今のところ、私はこれが好きです:

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

C#では、複数のプロパティを更新するためのより簡潔な方法が可能ですか?

4

3 に答える 3

6

同等のキーワードを持つC#をチェックしてください。少しずさんですが、VB.NETWithステートメントに最も近いものです。

このブログ投稿もご覧ください:C#の「With」ステートメントに相当する単純なもの

于 2012-04-25T15:02:05.190 に答える
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#と同等のキーワード」を使うでしょう。

注:このソリューションにはC#4が必要です。

于 2012-04-25T15:17:54.893 に答える
1

いいえ。VB.NETにはWithステートメントがありますが、C#には同等のものはありません。

于 2012-04-25T15:01:54.907 に答える