none
プロパティとそのフィールドの名前のつけ方 RRS feed

  • 質問

  • .NET Framework の名前付けのガイドラインに従うと、プロパティとそのフィールドに大文字と小文字のみが異なる名前を付けることはできません。

    しかし、通常はプロパティとその値を保持するフィールドは意味的には同じであり、違う名前を付けろと言われても困ってしまいます。

    まったく違う名前を付けるのも無理がありますし、特定のプリフィックスやサフィックスを付けるのもお勧めではないようです。

    以前、VB.NETを使用したときにC#との違いで一番困ったのがこの点です。

    フィールドのほうはprivateにしますので、privateではないメンバで重複しなければいいかな、という考えでは何か問題がありますか?

    Textプロパティにはtextフィールドを使いたくなってしまうのですが、みなさんはどのようにしているのでしょうか?

    2006年6月5日 2:48

回答

  • みなさん返信ありがとうございます。

    Hongliangさんが言うとおり、ガイドラインではprivateなフィールドについては触れられていませんね。

    よく見れば、ガイドラインの頭の部分で「公開される要素にこれらのガイドラインを適用する必要があります」とわざわざ書かれていました。(早とちりですいません)

    このガイドラインを踏まえた上で、公開されない要素も含めた命名規約などを定める必要があるということでしょうね。

    プリフィックスやサフィックスを付ける方が多いのには驚きましたが(邪道だ!とか怒られるかと思いました)、参考にさせていただきます。

    2006年6月5日 8:57

すべての返信

  • 大文字小文字の違いなんてナンセンス。

    日本語にはそんなものありません。

    ってのが私の主張(^^

    _text

    とか

    text_

    とかです。

     

    2006年6月5日 2:58
  •  Tea Frog さんからの引用

    .NET Framework の名前付けのガイドラインに従うと、プロパティとそのフィールドに大文字と小文字のみが異なる名前を付けることはできません。

    でもなぜかリファクタを使うと、Pascal形式っぽく生成されてしまう・・・。

    2006年6月5日 3:40
    モデレータ
  • 私も、「_プロパティ名」 ですね。
    private なアクセシビリティなので、コンパイラにも叱られませんし。

    自身のクラスで使う時も、this.プロパティ名としますので、
    Getter と Setter 以外で 「_プロパティ名」 のくだりは出てきません。

    2006年6月5日 4:18
  • そもそも、名前付けのガイドラインにせよ CLS への準拠にせよ、private/internal なメンバに対しては何も制限していなかったはずですが? 飽くまで「外から見える」ものだけに対する制約でしょう。

    VB は大文字小文字を区別しない言語なので C# と違って Public プロパティに対応する Private フィールドの命名が面倒ですね。私は VB で書く時は m_ プリフィクスを付けるようにしています。

    2006年6月5日 6:50
  • みなさん返信ありがとうございます。

    Hongliangさんが言うとおり、ガイドラインではprivateなフィールドについては触れられていませんね。

    よく見れば、ガイドラインの頭の部分で「公開される要素にこれらのガイドラインを適用する必要があります」とわざわざ書かれていました。(早とちりですいません)

    このガイドラインを踏まえた上で、公開されない要素も含めた命名規約などを定める必要があるということでしょうね。

    プリフィックスやサフィックスを付ける方が多いのには驚きましたが(邪道だ!とか怒られるかと思いました)、参考にさせていただきます。

    2006年6月5日 8:57
  •  Hongliang さんからの引用
    CLS への準拠にせよ、private/internal なメンバに対しては何も制限していなかったはずですが?飽くまで「外から見える」ものだけに対する制約でしょう。

    そうですね、protected、protected internal, public だけでしたね。

    アンダースコアから始まるメンバ名

    2006年6月5日 9:00
  • じゃんぬねっとさん返信ありがとうございます。

    リンク先を見させていただきましたが、プリフィックスやサフィックスを付けるにしてもいろいろとあるんですね。

    インテリセンスを多用するので、個人的には頭にアンダースコアが便利かなと思います。(C++は使ったことがありません)

    2006年6月5日 9:32