C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 38 を表示中)
■19881 / )  Re[1]: RootNamespaceとは何でしょうか
□投稿者/ 魔界の仮面弁士 (754回)-(2008/06/01(Sun) 03:04:56)
No19879 (ぽたる さん) に返信
> C#のプロジェクトファイル(.csproj)をエディタで開くと
> <RootNamespace>WindowsFormsApplication1</RootNamespace>
> のような項目がありますが、

Visual Studio の開発環境では、『既定の名前空間』の項目として知られる物です。
これは、Properties.Settings や Properties.Resources の名前空間に用いられており、
上記の場合、global::WindowsFormsApplication1.Properties.Settings というクラス名を成します。

また、新たにクラス等を作る際には、ここで指定された名前空間が用いられて

namespace WindowsFormsApplication1
{
    class Class1
    {
    }
}

のようなコードが記述されます。ただし、クラスを追加した後で <RootNamespace> を切り替えても、
既存のコードの名前空間に対しては影響を与えません。(先述した Settings/Resources には影響があります)
後から <RootNamespace> の設定を変えても、上記は、global::WindowsFormsApplication1.Class1 を意味します。


一方、VB の場合は若干事情が異なります。
基本的な意味は同様ですが、.vbproj の場合、<RootNamespace>は『ルート名前空間』の項目にあたります。
これは VBC.EXE のコンパイラオプションである /rootnamespace: パラメータに直結しているため、
C# とは異なり、既存のコード中の全ての型宣言の名前空間に対しても影響を与えます。たとえば

Namespace Sample
    Public Class Class1
    End Class
End Namespace

のようなコードがあった場合、これは <RootNamespace>WindowsFormsApplication1</RootNamespace> の
影響を受けて、Global.WindowsFormsApplication1.Sample.Class1 というクラス名を意味する事になります。


なお、<RootNamespace> は C# では必須ですが、VB では空文字列にする事もできます。

返信 編集キー/


管理者用

- Child Tree -