web-dev-qa-db-ja.com

C#の命名規則-アンダースコア

これは MVC3 Razorチュートリアルhttp://www.asp.net で見ました

public ActionResult Index() {

    return View(_usrs._usrList);

}

その使用法は明らかに間違っていませんか?私はいつも考えていました [docs]

C#では、通常、パブリックプロパティの基になるプライベートメンバー変数を定義するときにのみ使用されます。他のプライベートメンバー変数にはアンダースコアがありません。ただし、この使用法は、自動プロパティの出現により、ほとんど道のりに行きました。

それとも私が見ている新しい命名規則ですか?マイクロソフト独自のチュートリアルでその使用法に非常に興味があります。

追伸:この記事はかなり良いです。読みやすくするために、命名規則に従う傾向があるというだけです。

30
naveen

C#スタイルガイドラインの開発に関する記事は、 StyleCop にあります。

.NETの最初のガイダンスは、アンダースコアをプライベートメンバー変数の一部であり、プレフィックスとしてのみ使用する場合を除き、アンダースコアを使用しないことでした。 __customerId_。これはおそらく、メンバー変数のプレフィックスとして「m_」が使用されているMFCから継承されたものです。

現在のプラクティスでは、アンダースコアをまったく使用しません。同じ名前のプライベートメンバー変数とパラメーターのあいまいさは、「this。」を使用して行う必要があります。実際、プライベートメンバーへのすべての参照には、「this。」をプレフィックスとして付ける必要があります。

アンダースコアが多く使用されると思われる唯一の場所は、単体テストの方法です。私はファンではありませんが、Throw_If_Customer_Is_Null(){...}などのメソッドを読みやすくすることができます。

35
Phil

ガイドラインはここに要約されます http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx そして、「これ」を使用するための規定が含まれています。アンダースコアの代わりに。しかし、コードに「this。」を追加すると、コードが冗長になり、読みにくくなります。さらに、慣例として、「_」はアンダースコアよりもフォローされていないようです。

14
user316117

ASPで。 NET MVC 3アンダースコアがより一般的に使用されます。たとえば、_MyPartialViewのようなアンダースコアで名前を付ける必要があるすべての部分ビューです。
部分ビューとアプリケーション内のビューを簡単に区別できるようにします。

とにかく、この例ではアンダースコアを使用する必要がないので、アンダースコアを歌うことは好みません。エンティティのリストに下線を引くのは良い習慣なので、それは間違いではありません。しかし、私はそれらなしで書くことを好みます。
両方の方法が正しいので、あなたがより快適に感じる方法で書いてください。

1
Chuck Norris