MSDNで私はそれが何をするのかを読むことができますが、それが技術的に何をするのか知りたいです(コンパイラに型を探す場所を教えてください..)?ディレクティブとして使用することを意味します。
4 に答える
ディレクティブの主な機能はusing
、名前空間内の型をユーザーコードの修飾なしで使用できるようにすることです。参照されるアセンブリとコンパイルされるプロジェクトで定義されている名前空間とタイプのセットを考慮します。
たとえば、MyTypes.Dllの次の定義を見てください。
namespace MyTypes {
class Class1 {}
}
MyTypes.dll
次に、別の名前空間を持つ別のプロジェクトからの参照を検討してください。作成するためのusingディレクティブがないClass1
場合、名前を修飾する必要があります
MyTypes.Class1 local1 = new MyTypes.Class1();
ディレクティブを使用すると、using
この資格を削除できます
using MyTypes;
...
Class1 local1 = new Class1();
@JaredParの答えは正しいですがimport
、Javaで言うのと同じようには機能しないことを付け加えたいと思います。import
(Javaが実際にメモリにインポートするのが間違っている場合は、誰かが私を訂正します)
使用できるようにするには、DLLまたはプロジェクト参照のいずれかを含める必要がありますがusing
、アセンブリ内のメソッド/プロパティ/何かを実際に呼び出すまで、DLLはメモリに読み込まれません。したがって、使用することはできますusing System.Linq;
が、実際にLinqメソッドを使用しない場合、Linqアセンブリが読み込まれることはありません。(名前空間とアセンブリは1:1ではないため、Linqが独自の物理アセンブリに含まれていることを100%確信しているわけではありませんが、例として、Linqが1:1であると想定しています)
using
ファイルで使用されているがファイルで定義されていない名前を検索する名前空間をコンパイラーに通知します。
コンパイラにアセンブリの構成ファイルに移動し、指定された名前で特定のDLLを検索するように指示するだけで、DLLが見つかった場合は、そのdllを現在のプロジェクトにリンクします。使用は、メモリ内の共有スペースでDLLが相互に通信するための単なるリンク操作です。ここの下の男は正しいです