On MSDN I can read what it does, but I would like to know what it does technically (tells compiler where to look for types..)? I mean using as a directive.
The primary function of the using
directive is to make types within a namespace available without qualification to the user code. It considers the set of namespaces and types which are defined in referenced assemblies and the project being compiled.
Take for example the following definition in MyTypes.Dll
namespace MyTypes {
class Class1 {}
}
Now consider referencing MyTypes.dll
from another project with a different namespace. Without a using directive to create Class1
i need to qualify the name
MyTypes.Class1 local1 = new MyTypes.Class1();
The using
directive lets me remove this qualification
using MyTypes;
...
Class1 local1 = new Class1();
@JaredPar's answer is correct, however I'd like to add that it doesn't quite work the same way as say import
in Java. (someone correct me if I'm wrong about Java's import
actually importing it into memory)
You need to include either a DLL or project reference in order to even be able to use using
however it's not loaded into memory until you actually call into a method/property/something in the assembly. So you could have using System.Linq;
but if you don't actually use any Linq methods, the Linq assembly is never loaded. (I'm not 100% positive that Linq is in it's own physical assembly since namespaces and assemblies aren't 1:1, but for sake of example I'm assuming it is)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With