プライベート変数と同じ規則を使用してフォーム上のコントロールに名前を付けていますか?

StackOverflow https://stackoverflow.com/questions/9433

質問

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

役に立ちましたか?

解決

これは直感に反する人もいるかもしれませんが、私たちは UI 要素に恐ろしいハンガリー語表記法を使用しています。

ロジックは単純です。特定のデータ オブジェクトに対して、2 つ以上のコントロールを関連付けることができます。たとえば、テキスト ボックスに生年月日を示すコントロールがあるとします。次のようになります。

  • テキストボックス
  • テキストボックスが生年月日用であることを示すラベル
  • 日付を選択できるカレンダー コントロール

そのためには、ラベルに lblBirthDate、テキスト ボックスに txtBirthDate、カレンダー コントロールに calBirthDate を使用します。

ただし、他の人がこれをどのように行うかを聞くことに興味があります。:)

他のヒント

ハンガリー語表記であろうとなかろうと、人々が標準のプライベート メンバー変数に使用する m_ や _ などを先頭に付けるかどうかに興味があります。

私は個人的にプライベートオブジェクトの前に_を付けます

フォーム コントロールには常にタイプという接頭辞が付けられます。 のみ 私がこれを行う理由は、インテリセンスのためです。大きなフォームでは、単に入力するだけで「ラベル値を取得」することが簡単になります。 ポンド そしてリストからそれを選択します^_^また、 ジョン・リムジャップが述べた論理.

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

私にとって、プライベート メンバーの先頭にアンダースコアを付加するという命名規則で大きな成功を収めたのは、Intellisense のおかげです。アンダースコアはアルファベットのどの文字よりも前にあるため、Ctrl キーを押しながらスペースを押して Intellisense を起動すると、すべての _privateMember が一番上に表示されます。

ただし、名前に関する限り、コントロールの場合は別の話になります。同じ理由で、スコープが想定されており、種類 (たとえば、txtMyGroovyTextbox) を示すために数文字を先頭に追加する方が合理的だと思います。コントロールは、Intellisense でタイプごとにグループ化されます。

しかし仕事ではずっと VB で、mPrivateMember を使っています。mはモジュールの略だと思います。

私は VB を経て、コントロールのコントロール タイプ プレフィックスを保持してきました。私のプライベート メンバーは小文字のキャメルケース (firstLetterLowercase) を使用しますが、パブリック メンバーはパスカル/大文字のキャメルケース (FirstLetterUppercase) を使用します。

識別子/メンバー/ローカルが多すぎて、90% の確率でそれが何と呼ばれているかを覚えたり推測したりできない場合は、おそらくさらなる抽象化が必要です。

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

そうではありませんが、あなたの論理には感謝します。ほとんどの人がそうしない理由は、デザイン時に [プロパティ] ウィンドウでアンダースコアが見苦しく見えるからだと思います。また、水平方向のスペースも余分に占めることになるため、このようなドッキング ウィンドウでは非常に重要になります。

ハンガリーの表記かどうかにかかわらず、人々がM_または_を準備するか、標準的なプライベートメンバー変数に使用するものを準備するかどうかはもっと興味があります。

ルーク、

クラス ライブラリ オブジェクトには _ プレフィックスを使用します。前述の理由から、私は UI のみにハンガリー語表記を使用しています。

私は変数名にアンダースコアを決して使用しません。言語で要求されない限り、英字 (場合によっては英数字) 以外の文字は過剰であることがわかりました。

私は、UI コンポーネント (tbTextbox、lblLabel など) の「ハンガリー語」表記法と混合した、大文字/小文字陣営 (「タイトル」はプライベート、「タイトル」はパブリック) に属していますが、それらがないことを嬉しく思っています。チーム内の Visual Case-Insensitive-Basic 開発者:-)

アンダースコアは見た目がちょっと醜いので好きではありませんが、利点があることは認めざるを得ません(論点によっては欠点もあります)。デバッガーでは、_ がアルファベットの先頭にあるため、すべてのプライベート変数が先頭に表示されます。しかし、繰り返しになりますが、私はプライベート/パブリックのペアを一緒にすることを好みます。そうすることで、プライベート プロパティとパブリック プロパティが隣り合って表示され、ゲッター/セッター ロジックのデバッグが容易になるからです。

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

私はメンバー変数に m_ を使用していますが、メソッド パラメーターやローカル変数と同様に、 lowerCamelCase を使用したいという誘惑に駆られています。公開されているものは UpperCamelCase です。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top