C#を使用して最初のasp.net MVCアプリケーションを作成すると、名前がアンダースコア文字(_)で始まる変数がいくつかあります。
これは何を意味するのでしょうか?これには特定の意味がありますか?
言語定義の意味はありません。これは、一部の人々がインスタンス変数とローカル変数を区別するために使用する規則にすぎません。その他のバリエーションには、m_foo(およびs_fooまたはg_fooまたは静的変数)またはmFooがあります。あるいは、インスタンス変数の代わりにローカル変数(およびパラメーター)をプレフィックスすることを好む人もいます。
個人的に私はこのようなプレフィックスを使用しませんが、それはスタイルの選択です。同じプロジェクトに取り組んでいる全員が一貫している限り、それは通常大した問題ではありません。私はいくつかの恐ろしく一貫性のないコードを見ました...
一般に、これはプライベートメンバーフィールドを意味します。
変数名の前の下線_val
は慣例にすぎません。 C#では、パブリックプロパティのプライベートメンバー変数を定義するときに使用されます。
@ Steven Robbins が言ったことに追加します:
private string _val;
public string Values
{
get { return _val;}
set {_val = value;}
}
多くの人々はそれらをプロパティのプライベート変数(実際にパブリックプロパティの値を格納する変数)に使用します。
私はこれが少し古いことを知っていますが、誰かがここで終わってしまった場合に備えて、.NETのMVCについて話している場合は、アンダースコアで始まる名前の部分ビューにも命名規則があることをここに追加します。
これは、すべての人が決定に気づいている限り、あなたとあなたのチームが従うかどうかを決めることができる命名規則です。私はそれらを認識するためだけに、プライベートまたは保護されたような非パブリックフィールドでも使用します。
これについて少し説明します さらに読みたい場合。
インスタンスプロパティを ''で開始することには別の利点があります。これはIntellisenseで最初に表示されます。
値/モデル/ POCOクラスを作成するときに、 ''を使用しません。
プロパティのプライベート変数にアンダースコアを使用すると、クラス自体のプロパティではなく、変数を誤って呼び出す可能性がある状況を回避できます。 (簡単な小文字のインテリセンス入力で簡単に行えます)
プロパティget {}内で何らかの形の計算または集計を行う場合、プロパティを完全に呼び出すことを意図している場合、最後に実行する必要があります。
関数の残りの部分からそれらを「隠す」方法として使用されていないパラメーターの変数名として使用されるのを見てきました。
これは良いことでも悪いことでもありませんが、関数でパラメーターが使用されないことを示すのに効果的でした。