2008-08-13 7 views
10

何らかの理由で私はこれが行われていることは決してありません。理由はありますか?たとえば私はプライベート変数のために_blahが好きです。少なくともWindowsフォームコントロールでは、デフォルトでプライベートメンバー変数がありますが、そのように名前が付けられているのを覚えていません。私がメンバ関数内のローカル変数にコントロールオブジェクトを作成/格納する場合は、いくつかの視覚的な区別があると特に便利です。プライベート変数と同じ規則を使用してフォームのコントロールに名前を付けますか?

答えて

13

これは、一部の人にとっては直感的ではないかもしれませんが、UI要素には恐ろしいハンガリー表記を使用しています。

ロジックは単純です。任意のデータオブジェクトに対して、関連付けられたコントロールが2つ以上ある場合があります。たとえば、テキストボックスの誕生日を示す制御を持って、あなたが持っているでしょう:

  • テキストボックス
  • テキストボックスには、誕生日のためのものであることを示すラベル
  • カレンダーコントロールあなたは日付を選択することができます

これは、私はラベルのlblBirthDate、テキストボックスのtxtBirthDate、カレンダーコントロールのcalBirthDateを持っています。

他の人たちのやり方について聞いてみたいと思います。 :)

0

私はそうではありませんが、あなたのロジックに感謝します。私はほとんどの人がそうでない理由は、アンダースコアが設計時にプロパティウインドウで醜いものに見えるということだと思います。それはまた、そのようなドッキングされたウィンドウのプレミアムである水平スペースの余分な文字を占有するだろう。

4

ハンガリー語の表記法ではないかというと、標準のプライベートメンバー変数にm_や_などを前置する方が好奇心が強いです。人々はM_または_または、彼らは標準のプライベート メンバ変数に使用するものは何でも を付加した場合

0

ハンガリアン記法かどうか、私はもっと 興味があります。

ルーク、

私は私のクラスライブラリオブジェクトの_の接頭辞を使用しています。私は、私が述べた理由のために、UIのためだけにハンガリー記法を使用します。

-3

メンバ変数にm_を使用していますが、メソッドパラメータやローカル変数のようにlowerCamelCaseを使用することが増えています。公共のものはUpperCamelCaseにあります。

これは、.NETコミュニティ全体で多かれ少なかれ受け入れられているようです。 _

フォームコントロールと

1

私個人的には接頭辞プライベートオブジェクトは、常にタイプが付いている、私はこれを行うのみ理由は、インテリセンスです。大きなフォームでは、lblと入力するだけでラベル値を取得しやすくなり、リストから選択することもできます^ _ ^またlogic stated by Jon Limjapの後に続きます。

これはMicrosoftの.NETコーディングガイドラインに戻りますが、hereを確認してください。

1

私にとっては、プライベートメンバーにアンダースコアを付ける命名規則で大きな勝利はIntellisenseと関係があります。アンダースコアはアルファベットのどの文字よりも先行しているので、Intellisenseを呼び出すためのCtrl-Spaceを実行すると、すべての_privateMembersが上部に表示されます。

コントロールは、ネーミングが行われる限り、別の話です。私はその範囲が想定されていると思うし、同じ理由でタイプ(txtMyGroovyTextboxなど)を示すためにいくつかの文字を前に付けると意味があります。コントロールはタイプ別にIntellisenseでグループ化されます。

しかし、仕事では、それはVBのすべての方法で、私たちはmPrivateMemberを行います。私はmがモジュールのために立つかもしれないと思います。

0

私は変数名にアンダースコアを使用しません。私は、言語によって要求されない限り、アルファ(時には英数字)以外の文字は過大であることを発見しました。

0

UIコンポーネント(tbTextbox、lblLabelなど)の「ハンガリー語」表記と混同されている大文字/小文字のキャンプ(「タイトル」はプライベート、「タイトル」は公開)です

私はアンダースコアが一見醜いので、私は下線が好きではありませんが、それは利点があることを認めなければなりません。あなたのポイント):デバッガでは、アルファベットの上に_があるため、すべてのプライベート変数が一番上に表示されます。しかし、私は私のプライベート/パブリックペアを一緒にすることをお勧めします。これは、プライベートプロパティとパブリックプロパティが互いに隣り合っているとゲッター/セッターロジックのデバッグが容易になるためです。

1

VBを経由して、コントロールのコントロールタイププレフィックスに追加します。パブリックメンバーがパスカル/アッパー・ラクテルのケース(FirstLetterUppercase)を使用している間、私の私的メンバーは、より低いラクダのケース(firstLetterLowercase)を使用します。

識別子/メンバー/地方があまりにも多く存在し、呼び出されたものを想起/推測する機会が90%ある場合は、おそらく抽象化が必要です。

ストレージタイプのプレフィックスが有用であり、かつ/または必要であるとは決して確信していません。しかし、私が使用しているコードのスタイルに従う強い習慣を作っています。

0

私はそれらが表すデータベース列の名前を書き留めます。

関連する問題