6
これをC#で行うのは安全ですか?複数の代入(フィールド=プロパティ=値)
field = Property = value;
は、セッターとゲッターを連続して呼ばれることを保証し、field
のみゲッターの結果が割り当てられ、必ずしもvalue
されますか?コンパイラはそれをただちにvalue
に最適化しますか?ゲッターを呼び出していないようですので、私は唯一のセッターが出力ウィンドウに書き込まれます
int s = TADA = 1;
private int tada;
public int TADA
{
get
{
Console.WriteLine("GETTER");
return tada;
}
set
{
Console.WriteLine("SETTER");
tada = value;
}
}
と
を使用して
この場合、「Property」のゲッターは呼び出されません。 getterを実行する必要がある場合は、代入を分割する必要があります: 'Property = value; field = Property; ' –
http://stackoverflow.com/questions/13714246/assignment-and-sequence-points-how-is-this-ambiguous – Azodious