2

このように追加することの違いは何ですかSystem.Net:

 CookieContainer globalcontainer = new System.Net.CookieContainer();

宣言で名前空間なしでクラスを使用する

 CookieContainer globalcontainer = new CookieContainer();

効率が良いのはどっち?

4

2 に答える 2

7

どちらもより効率的ではありません。1 つは名前空間を明示的に指定する方法で、もう 1 つは暗黙的に指定する方法です。

.cs ファイルの先頭にある using ディレクティブは、名前空間をインポートします。つまり、これらの名前空間の型は、コードで認識されるために完全修飾パスを必要としません。

例えば

List<T>... に表示されSystem.Collections.Genericます。この名前空間の using ディレクティブがない場合は、完全修飾名を使用する必要があります。

System.Collections.Generic.List<int> someList;

それに対して、あなたはしません

using System.Collections.Generic;

List<int> someList;

名前空間の競合が発生する場合があります。次のシナリオを想像してください。

Some.Namespace.Task
Some.Othernamespace.Task

両方の名前空間をインポートする場合:

using Some.Namespace;
using Some.Othernamespace;

Task someTask; // <--- this line will cause a compile time error

コンパイラはTask、Some.Namespace からの 1 つと Some.Othernamespace からの 1 つのどちらが必要かを認識しません。この場合、具体的に指定して完全な名前空間を指定する (またはエイリアスを使用する) 必要があります。

お役に立てれば

ここで名前空間についてすべて読んでください:

http://msdn.microsoft.com/en-gb/library/z2kcy19k(v=vs.80).aspx

于 2013-04-21T09:20:13.917 に答える