次のコードを検討してください。
class C
{
public int A { get; set; }
public int B;
public C(int a, int b)
{
this.A = A; // Oops, bug! Should be `this.A = a`. No warning
this.B = B; // Oops, bug! Should be `this.B = b`. `warning CS1717: Assignment made to same variable; did you mean to assign something else?`
}
}
A
とB
ほぼ同じものですが、見逃してしまうバグがあります。
コンパイル時に最初のケースをキャッチする方法はありますか?
編集:いくつかの回答とコメントは、プロパティとフィールドが同じものではないことを私に説明したいと思っています。私はすでにそれを知っています。彼らは、コンパイラがここで警告を出さない理由を説明しています。わかりました。しかし、私はバグを書きました。バグを書くのは好きではありません。だから私の質問は、「このバグを二度と書かないようにするにはどうすればよいですか?」