auto プロパティを知って以来、あらゆる場所で使用するようにしています。クラス内で使用するすべてのプロパティに常にプライベートメンバーが存在する前に。現在、これは auto プロパティに置き換えられています。通常のメンバー フィールドを使用する方法で、クラス内でプロパティを使用します。問題は、プロパティがキャピトルで始まることです。これにより、この方法で使用すると少し奇妙に見えます. プロパティは常に「ドット」の後ろにあるため、以前はプロパティがキャピトルで始まることを気にしませんでした。今ではthis.
、自分の気持ちを落ち着かせるために、内部で使用するすべてのプロパティの前に を付けていることに気付きました。
this.
私のジレンマは、「必要」でない限り(セッターやコンストラクターのように)、内部メンバーのすべての使用に接頭辞を付けることに常に少し反対していたことです。だから私はこれについてセカンドオピニオンを探しています。これを行うための標準的な良い方法はありますか? 不平を言うのはやめた方がいいですか (私は「アリ ハンパー」(オランダ語の表現) になる傾向があります)。
前:
class Foo
{
private Bar bar;
public Bar Bar { get { return bar; } }
public Foo(Bar bar)
{
this.bar = bar;
}
public void DoStuff()
{
if(bar != null)
{
bar.DoMethod();
}
}
}
後:
class Foo
{
public Bar Bar {get; private set;}
public Foo(Bar bar)
{
this.Bar = bar;
// or
Bar = bar;
}
public void DoStuff()
{
if(this.Bar != null)
{
this.Bar.DoMethod();
}
// or
if(Bar != null)
{
Bar.DoMethod();
}
}
}
アップデート
より多くの人が接頭辞を付けることを支持していますが、意見はさまざまであるようですthis.
。auto プロパティの前は、コンストラクターやセッターの代わりに with をプレフィックスとして付けることに常に反対していthis.
ました (前に述べたように)。でも今はそれしか分からない。
追加の注意: プロパティにクラスと同じ名前を付けるのも一般的であるという事実 ( public Bar Bar { get; private set; }
) も、接頭辞を付ける傾向があります。と入力するたびにBar.DoMethod()
、静的メソッドのように見えるように感じます。それが静的メソッドである場合、VSは色Bar
を付けますが、同じ署名を持つ静的メソッドとインスタンスメソッドを持つことはできません。色が付いている場合は静的メソッドであることが明らかですが、色が付いていない場合は静的メソッドではないことが 100% 明確ではありません。たとえば、ステートメントが欠落している可能性がありますが、using
色付けされていないことを静的呼び出しであるかどうかにリンクする必要があることに慣れていないためでもあります。メンバーの場合は最初の文字の大文字化によって、またはプロパティの場合は「ドット」によって、すぐにそれを確認する前に (たとえば、「ドット」foo
で(Foo)foo.Bar.DoMethod()
)。
(現時点で「承認された回答」を選択することは困難です)