■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 では空文字列にする事もできます。
|