1

プロジェクトのメイン名前空間である「Core 」という名前空間があります。

次に、ライブラリのすべての GUI および WPF クラスを含む「 Interface 」という名前の新しいサブ名前空間を作成しました。UserControlsやWindowsのETCもたくさんあります。一方、「Interface」という名前の別のクラスがあります。これは、Interface 名前空間とその機能を処理および管理する STATIC クラスです。これは、ユーザー\開発者が自分のソフトウェアの GUI を管理するのを避けるように設計されているため、この静的クラスを作成しました。

そのため、静的クラス Core.Interface を呼び出すときにコンパイラがサブ名前空間と静的クラスを分離しないという小さな問題があります。これは、両方の名前がまったく同じであるためです。

名前を変更したくないので、新しい名前を提案しないでください。InterfaceクラスをInterface名前空間内に移動するか、サブ名前空間「Interface」を削除してすべてをメイン名前空間「Core」に移動する方がよいかはわかりませんが、それでは混乱するので、厳密な順序が必要です私のプロジェクトで。

それで、あなたは私に何をするように提案しますか?

更新: OK、だから私は提案から確信しています。いずれの場合も、サブ名前空間の新しい適切な名前を見つけます。また、静的クラスをメイン名前空間に保持して、それぞれのメイン静的クラスを使用するためだけにサブ名前空間の使用を定義するユーザーを回避します。

とにかく、答えて提案してくれてありがとう。

4

2 に答える 2

2

名前空間の名前を に変更InterfaceInterfacesます。通常、名前空間には複数のクラスが含まれるため、接尾辞としてsセマンティクスを壊さないほうがよい場合があります。

于 2013-04-26T08:53:44.260 に答える
2

理想的には、名前空間とクラスの間に明確な違いがあるべきです。名前空間はパッケージであり、クラスはそのパッケージに含まれるものです。たとえば、リンゴとオレンジが入ったバスケットがあるとします。バスケットをリンゴと呼びたくないでしょう。

本当にこれらの名前を保持する必要がある場合は、最初に「Core.Interface を使用して」で名前空間を参照しないでください。代わりに、それらを使用するたびに完全なクラス パスを呼び出します。これにより、コンパイラは使用している名前を認識します。

もう 1 つのオプションは 、サブクラス クラスを使用し、静的クラスのフル パスを使用する場合はいつでも、似たようなエイリアスを使用し、InterfaceNameSpace 定義を使用することです。using InterfaceNameSpace = Core.Interface;

于 2013-04-26T08:22:45.380 に答える