2009-07-22 6 views
0

Visual Studioで新しいクラスを作成すると、プロジェクトプロパティで設定されているデフォルトの名前空間から取得された名前空間の定義が含まれます。しかし、名前空間の定義を削除すると、デフォルトの名前空間が選択されます。削除するのは安全ですか?それをそこに残すことに何らかの恩恵がありますか?Visual Studioの新しいクラスから名前空間定義を削除するのは安全ですか?

+0

これはVB.NETですか? –

+0

どちらも、クラスファイルから名前空間を削除し、オブジェクトブラウザのクラスを検索してクラスが実際にデフォルトの名前空間に存在することを確認できます。 –

+0

vb .netは異なった振る舞いをします。私のアセンブリはデフォルトの名前空間と同じ名前になっていたので、クラスは名前空間に属していたように見えましたが、C#のグローバル名前空間では実際に存在していました。 vb.netでは、クラスがグローバル名前空間ではなくデフォルト名前空間に追加されるように、同じコードが表示されます。 –

答えて

1

C#では、クラスはデフォルトの名前空間を自動的に使用するのではなく、代わりにグローバル名前空間に常駐しますお勧めします。

VB.NETでは、クラスは自動的にグローバル名前空間ではなくデフォルト名前空間を使用し、安全ですが、これはベストプラクティスではありません。パベルMinaevは、VBのコンテキストでは、以下の...

述べているように、それは安全ですが、親指の良いルールは、「明示的、暗黙的よりも優れている」ということです。個人的には、VBの暗黙的な名前空間とインポートが、コードの可読性を妨げるような誤った機能の例であることがわかりました。しかし、もちろん、それは非常に主観的です。

+0

私は完全性のためにc#とvb.netの違いを明確にしたいと思います –

0

一般的に、デフォルトの名前空間は選択されません。一般的に、それは同じ名前ではありませんグローバルな名前空間にそれを置きます。

クラスを名前空間に入れたい場合は、namespaceのままにしておきます。

+0

VBの文脈で質問されたと強く疑われます。 –

3

VBの文脈では、安全ですが、「明示的な方が暗黙的である」という経験則があります。個人的には、VBの暗黙的な名前空間とインポートが、コードの可読性を妨げるような誤った機能の例であることがわかりました。しかし、もちろん、それは非常に主観的です。

1

理論的にはそれは可能で合法ですが、それはちょっといいです:)(99%の場合)。あなたのコードを書くときには、それをいくつかの名前空間の中に "パック"するのがいいです。
また、あなたが名前の衝突(FE同じ名前を持つ2つのクラスに問題はありません - あなたは、別の名前空間にそれらを持っているかどう法的かつ管理を
基本的に:。。
1.のものを持つグローバル名前空間内ではありませんいいえ(デフォルトの名前空間と同じではありません)
2.名前空間を使用すると、コードを簡単に管理できます(これは、削除する代わりにデフォルトの名前空間を残しておく利点です)。
3.名前空間を解決する名前空間コンフリクトなど。

関連する問題