2011-01-31 11 views
1

これまでに見たことのあるC#のすべての部分は、常にラップされている名前空間です。名前空間にラップされていないコードを含めることは可能ですか?もちろん名前空間のないC#コード?

答えて

5

あなたが特定のものを宣言する必要はありません。スクリプトの先頭にある名前空間を削除します(開始および終了の括弧と一緒に)。これにより、グローバル名前空間の一部になります。スペックから

:なし 囲む名前空間を持たない

名前空間とタイプが グローバル名前空間のメンバーです。これは に対応し、 グローバル宣言スペースで宣言された名前に直接対応します。

名前空間 と名前空間内で宣言された型は、その名前空間のメンバです。 この は、 の宣言スペースで宣言されている名前 に直接対応しています。

技術的には、指定しなかったとしても、それは名前空間(グローバルなもの)の一部です。

+0

これは他の理由では必ずしも可能ではない可能性があることを理解してください。たとえば、名前空間は同じ名前のクラスを区別するために使用されるため、グローバル名前空間に2つのクラスを持つことはできません。すべてがグローバル名前空間にあるかのように、コンパイラは各コードファイルで参照しているクラスの名前空間全体を検索し、これらのクラスをすべてIntelliSenseの可能性として提示しなければならないので、名前空間を使用するのが一般的なコーディングです。 – KeithS

+0

保護されたメソッドはうまくいかないと思うので、Privateのように反応します – Burimi

3

、あなたはグローバル名前空間に型を定義することができます

using System; 

class Program 
{ 
    static void Main() 
    { 
     Console.WriteLine("I have no namespace"); 
    } 
}