これは私を大いに悩ませ、Intellisense (VS 2008 Pro) と組み合わせると、ばかげたバグを書いていることがわかります。
class Foo
{
public Foo(bool isAction)
{
this.IsAction = IsAction;
}
public bool IsAction { get; private set; }
}
あなたはそれをキャッチしましたか?IsAction が変更されず、バグが発生するまで、私は確かにそうしませんでした。
Intellisense はどういうわけか " isA<tab>
" を "IsAction" に変換しました。これは、コンストラクターの入力に関係なく、プロパティFoo.IsAction
が常にfalse であることを意味します。ただ素晴らしい。
特に「暗黙的this
」(正式な名前があるかどうかはわかりません)が嫌いであり、それをオフにして、それを想定しないようにしたいと言わざるを得ません。 これを行う方法はありますか? これは、同じクラスの静的メソッドを呼び出す場合にも当てはまります。
あるいは、この小さな問題を回避する命名規則は何ですか? プロパティは「IsAction」のままにする必要があるため、コンストラクターのパラメーター名の規則にする必要があります。奇妙なことに、正確に一致するスペルで名前を付けると、this.IsAction = IsAction;
正しく機能します。
問題は大文字と小文字を区別する言語ではなく、this
. 考えてみると、これも C# というよりも VS 2008 Pro に関する質問です。がなくても既に書かれたコードで生活できますが、this
それなしで新しいコードを書きたくありません。
ノルドリンの答えは私に考えさせました。
考えてみると、これも C# というよりも VS 2008 に関する質問です。私はすでに書かれたコードで生きることができますが、this
それなしで新しいコードを書きたくありません。 Intellisense にそれを無効にするように指示できますか?