2009-03-10 22 views
0

多くの場合、クラス名が属している名前空間への参照を持ちます。最も一般的な例の1つは、.NET 'Xml'名前空間です。そこに定義されているすべての単一クラスに 'Xml'タグの接頭辞が付きます。名前空間に関してクラスの名前を正しく指定する方法は?

これはいつも私にとってかなり冗長に思えましたが、最近、私はそれが有用であるかもしれないことに気付きました。

私は人々がこの問題に実際にどのように対処しているか知りたいと思います。

ありがとうございました。

答えて

5

私は「適切なときに」アプローチを採用します。アイデアは、最も理にかなった名前を使用してクラスに名前を付けることです。場合によっては、クラス名が名前空間と幾分冗長であることを意味しますが、名前空間はusingディレクティブの一部ではなくコード内のクラス名の一部として一般に見られません。

名前空間は、関連するクラスなどを論理的にグループ化し、開発者が正しいクラスを見つけて名前の衝突の可能性を最小限に抑えるのに役立ちます。

+0

私はクラス名の一部として名前空間が見えないと思っています。ありがとう。 – Trap

4

私は、名前付けの問題に関してMicrosoft's guidanceに延期する傾向があります。


Re:Scottさんのコメント

私はMSがこの問題についてかなり明確であると思うし、OPへの返事に似ています。例えば:

は、そのような要素、ノード、ログ、および メッセージなどの一般的なタイプ名を 紹介しないでください。一般的なシナリオでは、タイプ名が になる可能性が非常に高い 確率があります。 は、汎用タイプ名 (FormElement、XmlNode EventLog、 SoapMessage)を修飾する必要があります。

OPの質問では、Xml名前空間が参照されました。これらのクラスの名前を見ると、それらは属性、辞書、ドキュメントなどの前に付いている "Xml"を持つ一般的な名前です。

私が言ったように、彼らが提案するもの。

+0

最初の数センテンス以外では、これは実際に質問に答えません。それでも良い参考資料です。 –

1

私はSystem.XmlクラスにXmlプレフィックスが付いているのが好きです。それは私を一般的な相手と区別するのに役立ちます。ドキュメントとXmlDocumentの違い接頭辞が明瞭になります。とにかく、私の意見では。

自分の授業では、私はこの精神に従っています。私が多少の一般的な言葉を使ってクラスにラップすると、その名前空間をプレフィックスとして使うことができます。たとえば、

MyProject.Client.Applicationは、.NETクラスのApplicationと衝突します。

MyProject.Client.ClientApplicationは、少なくともクラスが何をしているかについてはっきりとしていますが(少なくとも私のプロジェクトに関して)、衝突の問題を回避します。