質問: C# における名前空間の付け方について質問です。 前置き ---- 名前空間の命名規則については、マイクロソフト公式.aspx)で以下のような説明があります。 > > 入れ子になった名前空間は、外側の名前空間の型に依存します。たとえば、System.Web.UI.Design のクラスは、System.Web.UI のクラスに依存します。しかし、System.Web.UI のクラスが、System.Web.UI.Design のクラスに依存することはありません。 > > > これはつまり、以下のような関係は NG ということだと認識しています。 ``` namespace System.Web.UI.Design { ... } ``` ``` using System.Web.UI.Design; namespace System.Web.UI { ... } ``` 質問 --- 本題です。 上記を前提としたとき、以下のような名前空間の命名はアリなのでしょうか。 #### 1. 異なる名前空間に依存する場合 下記では、 `Hoge.Piyo` と `Hoge.Fuga` 間に明示的な入れ子構造はありませんが、階層構造もありません。 この場合、実装方法としては問題ありませんでしょうか? ``` namespace Hoge.Piyo{ ... } ``` ``` using Hoge.Piyo namespace Hoge.Fuga{ ... } ``` #### 2. 異なる名前空間の間で依存関係がクロスする場合 下記でも、上記と同じように `Hoge.Piyo` と `Hoge.Fuga` 間に明示的な入れ子構造はありませんが、階層構造もありません。 ただし、今回は上記と違って、 名前空間の依存がクロスしています。 さすがにこれはナシでしょうか? ``` using Hoge.Fuga namespace Hoge.Piyo{ ... } ``` ``` using Hoge.Piyo namespace Hoge.Fuga{ ... } ``` 以上、2点ほど宜しくお願い致します。
回答: HtmlTextWriter.cs > > namespace System.Web.UI { > > using System; > > using System.Collections; > > using System.Collections.Specialized; > > using System.IO; > > using System.Text; > > using System.Globalization; > > using System.Security.Permissions; > > using System.Web.UI.WebControls; > > using System.Web.Util; > > > System.Web.UI の中で System.Web.UI.WebControls を使用しています。 しかるべき理由があるなら問題ないでしょう。