Dyrektywa using w języku C#

Dyrektywa using - pozwala używać nazw niekwalifikowanych


Dyrektywa using jest bardzo przydatnym narzędziem, pozwala uniknąć konieczności poprzedzania nazwą przestrzeni, typów i metod znajdujących się w danym pliku lub przestrzeni nazw. Dyrektywy using muszą zostać zadeklarowane na samym początku przestrzeni nazw lub pliku. Najbardziej zewnętrzna przestrzeń nazw, w której znajdują się wszystkie inne przestrzenie nazw, nazywana jest globalną przestrzenią nazw. W przypadku gdy nie zadeklarujemy typu jawnie w przestrzeni nazw, to zostanie przypisany do przestrzeni globalnej - będzie się można do niego odwoływać bezpośrednio z każdej innej przestrzeni nazw. Należy tego unikać, ponieważ nie jest to poprawny styl programowania i kłóci się z ideą przestrzeni nazw.

Przykład użycia:

  • przed użyciem dyrektywy using:
    	namespace przestrzen1
    	{        
        	   public class Klasa1 
        	   {
            		System.Collections.Generic.IEnumerable<int> lista;
            		System.Collections.Generic.IEnumerable<int> lista1;
        	   }
    	}
    
  • po użyciu dyrektywy using:
    	namespace przestrzen1
    	{
        	   using System.Collections.Generic;
        	   public class Klasa1 
        	   {
            		IEnumerable<int> lista;
    		IEnumerable<int> lista1;
        	   }
    	}
    
W zależności od położenia dyrektywy using odnosi się ona do innej części kodu.

Dyrektywa using odnosząca się do wszystkich przestrzeni nazw znajdujących się w pliku:

using System;

namespace przestrzen1.przestrzen2
{//klasy itp.
}
namespace przestrzen2
{//klasy itp.
}

Dyrektywa using odnosząca się tylko do jednej przestrzeni nazw, w której została zadeklarowana:

namespace przestrzen1.przestrzen2
{
    using System;
    //klasy itp.
}
W przypadku, gdy w dwóch różnych przestrzeniach nazw zadeklarowanych poprzez using znajdują się typy o takich samych nazwach należy używać nazwy kwalifikowanej. Dyrektywa using nie jest rekurencyjna a więc przykładowo dyrektywa using.przestrzen1 nie zawiera w sobie przestrzeni zagnieżdżonych w przestrzeni przestrzen1, czyli np.: using.przestrzen1.przestrzen2. Jeśli chcemy korzystać z obu tych przestrzeni należy zamieścić obie dyrektywy.

Więcej informacji an temat dyrektywy using:

http://msdn.microsoft.com/pl-pl/library/zhdeatwt.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):