2

C# でWindows フォームベースのアプリケーションを作成しています。私のフォームのコンストラクターは parameterstring titleを受け取り、その値をstring this.Title属性に保存し、最後に windows label を作成しますLabel this.Title

問題は明らかです。私のLabelstringは同じ名前で、C# の命名規則に興味があります。私は何をすべきか?

完全なコードは次のとおりです。

// BNForm.cs
public partial class BNForm : Form
{
    public string Title;

    public BNForm(string title)
    {
        this.Title = title;
        InitControls();
    }
}

// BNForm.Designer.cs
partial class BNForm
{
    private Label Title;

    private InitControls()
    {
        this.Title = new Label();
        this.Title.Text = this.Title; // Trying to access the string here
        this.Title.AutoSize = true;
        this.Title.Location = new Point(15, 15);
        this.Controls.Add(this.Title); // Trying to access the Label here
    }
}

最初に自分のラベル変数label_Titleを呼び出しましたが、後で新しい変数を追加する必要があります。Button[] Buttonsこれは と呼ばれる必要がありますbuttonArray_Buttons。これはばかげているように思えます。

変数の名前は何にするべきですか? このようなネーミングにもルールはありますか?

4

4 に答える 4

3

プレフィックスは悪い習慣と見なされるため、使用しないでください。常識を働かせてください。titleLabel代わりにラベル フィールドを呼び出してみませんか? 「缶に書かれていることをします」... つまり、明確です。

于 2013-02-03T14:48:59.513 に答える
1

最初に、大文字と小文字のみが異なる変数名を明確に保ちます。一般に、これは大きな理解の問題です。私はメソッド内の引数の前に arg を付ける傾向がありますが、それを好まない人もいます。

LblTitle または同等のハンガリー語表記は、かなり標準的なアプローチです。私はそれを避けようとします。たとえば、タイトルをテキストボックスに表示したい場合は、すべての名前を変更するか、混同モードを有効にします。

この場合、Title プロパティの名前を DisplayTitle に、またはラベルの名前を TitleDisplay に変更します。

もう 1 つのオプションは、タイトル プロパティを保持する構造体またはクラスを作成することです。

[これ]Title.Text = [これ]Setup.Title;

何をするにしても、1 つの基準を選んでそれに固執することが、唯一のルールです。

于 2013-02-03T14:38:53.037 に答える
0

さて、私はもっと多くのことを知ったのでC#(そして「Antonijn」はすでにコメントでそれを述べました)、privateメンバー変数は小文字で始まり、publicプロパティは大文字で始まる必要があることを知っています。

このことを念頭に置いて、私public string Title;はそのままですが、ラベルは、private Label title;これら2つを互いに分離できるようになります。答えてくれたみんなに感謝します。この正確な問題について誰も助けてくれなかったとしても(良い提案、私は好きではないlblTitleなど)、C#についてもっと多くの知識を与えてくれました。

于 2013-02-26T10:35:12.490 に答える
0

変数の命名におけるいくつかのすべきこととすべきでないこと、およびさまざまなコントロールのその他のプレフィックスのガイドラインを次に示します。

DO

  • すべての識別子に、その機能を説明する意味のある名前を付けてください。
  • メンバー フィールドの前に「m_」を付けますが、他には何も付けません (f プレフィックス、サフィックスなど)。
  • すべての識別子に英語の名前を付けてください。
  • 名前空間、型、列挙型、メソッド名には Pascal の大文字小文字を使用してください。
  • パラメータ、フィールド、ローカル変数にはキャメルケースを使用してください。
  • すべてのインターフェースの前に I を付けます。すべての例外クラスに Exception の接尾辞を付けます。
  • すべての属性クラスに Attribute というサフィックスを付けてください。すべてのイベント ハンドラーに EventHandler をサフィックスとして付けてください。
  • 定数には大文字を使用してください。

禁止事項

  • ハンガリー表記は使用しないでください。
  • 2 文字を超える識別子には大文字を使用しないでください (上記の定数を除く)。
  • 大文字と小文字だけで識別子を区別しないでください。
  • 略語や短縮形は使用しないでください。
  • 業界で一般的に受け入れられていない頭字語は使用しないでください。
  • 2 文字を超える頭字語には大文字を使用しないでください。
  • キーワードや一般的に使用される .NET 名前空間と重複する識別子名を使用しないでください。
  • 列挙型、クラス、構造体、またはデリゲートの名前にプレフィックスを付けないでください。
  • 列挙型の末尾に Enum を付けないでください。

変数の命名の提案。オブジェクトの種類に応じて、すべての変数にプレフィックスを付けるだけです。

  • ボタン - ボタン
  • チェックボックス - チェック
  • コンボボックス - cmb
  • データ列 - dcol
  • データグリッド - dgrid
  • DataGridDateTimePickerColumn - dgdtpc
  • DataGridTableStyle - dgts
  • DataGridTextBoxColumn - dgtbc
  • ダイアログ - dlg
  • グループボックス - gbx
  • イメージリスト - iml
  • レーベル - lbl
  • リストボックス - lbx
  • リストビュー - lv
  • メインメニュー - mm
  • メニュー項目 - mi
  • MDI フレーム - frm
  • MDIシート - sht
  • NumericUpDown -ヌード
  • パネル - パネル
  • PictureBox - pbx
  • ラジオボタン - rbt
  • SDI-Form - フォーム
  • ステータスバー - stb
  • TabControl - タブ
  • TabPage - タブ
  • テキストボックス - txt
  • ツールバー - tbr
  • ツールバーボタン - tbb
  • タイマー - tmr
  • ユーザーコントロール - usr
  • Windowsプリンシパル - wpl
  • GridEX - ゲックス
  • TreeView - テレビ
  • UICommand - cmd
  • エディットボックス - edt
  • DataView - 見る
  • データテーブル - tbl
  • データセット - ds

お役に立てれば。

于 2013-02-03T14:54:30.373 に答える