何らかの理由で、これが行われたことはありません。そうでない理由はありますか?たとえば、私はプライベート変数の _blah が好きで、少なくとも Windows フォーム コントロールでは、デフォルトでプライベート メンバー変数になっていますが、そのように名前が付けられているのを見た覚えがありません。メンバー関数内のローカル変数にコントロール オブジェクトを作成/保存する場合、視覚的に区別できると特に便利です。
11 に答える
これは一部の人にとっては直感に反するかもしれませんが、UI要素には恐ろしいハンガリアン記法を使用しています。
ロジックは単純です。特定のデータオブジェクトに対して、2つ以上のコントロールを関連付けることができます。たとえば、テキストボックスに誕生日を示すコントロールがある場合、次のようになります。
- テキストボックス
- テキストボックスが生年月日用であることを示すラベル
- 日付を選択できるカレンダーコントロール
そのためには、ラベルにlblBirthDate、テキストボックスにtxtBirthDate、カレンダーコントロールにcalBirthDateを設定します。
しかし、私は他の人がこれをどのように行うかを聞くことに興味があります。:)
ハンガリアン記法であろうとなかろうと、人々がm_や_、あるいは標準のプライベートメンバー変数に使用するものを前に付けるかどうか、私はもっと興味があります。
私は個人的にプライベートオブジェクトの前に_を付けます
フォームコントロールには常にタイプのプレフィックスが付いています。これを行う唯一の理由は、インテリセンスのためです。大きなフォームでは、 lblと入力してリストから選択するだけで、「ラベル値を取得」するのが簡単になります^ _ ^また、JonLimjapが述べたロジックに従います。
これもMicrosoftの.NETコーディングガイドラインに当てはまりますが、ここで確認してください。
私にとって、プライベート メンバーの先頭にアンダースコアを付けるという命名規則の大きなメリットは、Intellisense に関係しています。アンダースコアはアルファベットのどの文字よりも前にあるため、Ctrl キーを押しながらスペースを押して Intellisense を起動すると、すべての _privateMembers が一番上に表示されます。
ただし、ネーミングに関する限り、コントロールは別の話です。スコープが想定されていると思います。同じ理由で、タイプを示すためにいくつかの文字を先頭に追加する方が理にかなっています (たとえば、txtMyGroovyTextbox)。コントロールは、Intellisense でタイプ別にグループ化されます。
しかし、職場ではずっと VB で、mPrivateMember を使用しています。m はモジュールの略だと思います。
私は VB を使用して、コントロールのコントロール タイプ プレフィックスを保持しています。私のプライベート メンバーは小文字のキャメル ケース (firstLetterLowercase) を使用し、パブリック メンバーはパスカル/大文字のキャメル ケース (FirstLetterUppercase) を使用します。
識別子/メンバー/ローカルが多すぎて、90% の確率で名前を覚えたり推測したりできない場合は、おそらくさらに抽象化が必要です。
ストレージ タイプのプレフィックスが有用である、または必要であると確信したことは一度もありません。ただし、使用するコードのスタイルに従うという強い習慣があります。
ハンガリアン記法であろうとなかろうと、人々がm_や_、あるいは標準のプライベートメンバー変数に使用するものを前に付けるかどうか、私はもっと興味があります。
ルーク、
クラスライブラリオブジェクトに_プレフィックスを使用します。私が述べた理由から、私はUI専用にハンガリアン記法を使用しています。
変数名にアンダースコアを使用することはありません。言語で要求されない限り、アルファ (場合によっては英数字) 文字以外は過剰であることがわかりました。
それらが表すデータベース列の名前を書き留めます。
私はしませんが、あなたの論理に感謝します。ほとんどの人がそうしない理由は、設計時に [プロパティ] ウィンドウでアンダースコアが見苦しく見えるからだと思います。また、水平スペースの余分な文字を占有します。これは、そのようなドッキングされたウィンドウでは貴重です.
私は大文字/小文字の陣営 ("タイトル" は非公開、"タイトル" は公開) に属し、UI コンポーネント (tbTextbox、lblLabel など) の "ハンガリアン" 表記法が混在しています。チーム内のVisual Case-Insensitive-Basic開発者:-)
アンダースコアは見栄えが悪いので好きではありませんが、それには利点があることを認めなければなりません (または、あなたのポイントに応じて欠点があります):アルファベットの上に。しかし、プライベート プロパティとパブリック プロパティが隣り合って表示されるため、ゲッター/セッター ロジックのデバッグが容易になるため、プライベート/パブリック ペアを一緒にすることをお勧めします。
メンバー変数にはm_を使用しますが、メソッドパラメーターやローカル変数の場合と同じように、lowerCamelCaseを使用したくなるようになっています。公開されているものはUpperCamelCaseにあります。
これは、.NETコミュニティ全体で多かれ少なかれ受け入れられている慣習のようです。