Jason. Cała informatyka w jednym miejscu!

Kojarzycie może słowo kluczowe "using" z "CSharpa"? Większość z Was mogłaby zabrać głos i stwierdzić, że owszem. "Takie coś widziałem(-am) umieszczone na samej górze pliku źródłowego z funkcją uruchomieniową »Main«". Zgadza się, ale na tym świat się nie kończy :). Wejdźcie do środka niniejszego artykułu i poznajcie jeszcze inne znaczenia słowa "using" w języku C# oraz w jakich sytuacjach może zostać użyte.

"USING" W JĘZYKU C# JEST "UŻYWANE" NA KILKA SPOSOBÓW

Nie mogło się obyć bez gry słów, więc możemy przystąpić do prezentacji ;). "using" w języku C# było, jest i będzie. A jedno "using" może oznaczać coś innego w zależności od okoliczności. Bez ściemy, oto parę znaczeń dotyczących wspomnianego słowa kluczowego.

JAKO DYREKTYWA DLA ALIASU PRZESTRZENI NAZW

Czyli najbardziej znana postać słowa "using" wstawiana automatycznie przez szablon kodu, zapewniany każdemu nowo tworzonemu projektowi. A jak dopiszę do tego, że zaczyna się od "System", o to już powinno dzwonić w Waszym kościele bardzo głośno :D:

using System;

Jaki daje skutek użycie "using" w języku C# taki sposób? Możliwość pominięcia odwoływania się do konstrukcji zawartych w podanej przestrzeni nazw poprzez nazwę. Tłumaczyłem to w stosownym artykule dlaczego powinny być wykorzystywane jak najczęściej. Mamy prawo dzięki temu napisać tak:

Console.WriteLine("Używam wypisywania na ekranie bez przedrostka \"System\"!");

zamiast:

System.Console.WriteLine("Używam wypisywania na ekranie podając pełną nazwę.");

JAKO DYREKTYWA DLA IMPORTU STATYCZNEGO

Znowu to samo?! No, prawie. Do tego samego "using" w języku C# dokładacie "static" i oto ukazuje się Wam import statycznych pól od pojedynczej wybranej składowej. Na przykład takie coś, umieszczone na samej górze:

using static System.Console;

spowoduje zaimportowanie zmiennej statycznej "System.Console" w obrębie całego pliku źródłowego, co w następstwie da możliwość korzystania z danych składowych i metod podanego obiektu, tak jakby nie należały one do tego obiektu (nie wymagają żadnych przedrostków ani operatorów "kropkowych"):

WriteLine("Używam wypisywania na ekranie bez \"System.Console\"!!!");

zamiast:

System.Console.WriteLine("Używam wypisywania na ekranie podając pełną nazwę.");

Pamiętajcie jednak, że to podnosi ryzyko występowania kolizji nazw, w przypadku gdy Wasza metoda, klasa albo dowolna inna konstrukcja nazywa się tak samo! Ta funkcjonalność występuje od wersji C# 6.0 wzwyż!

Słowo kluczowe "using" w języku C#

"using" znajdziecie w paru miejscach kodu dotyczącego głównie przestrzeni nazw, jednak z wejściem w życie nowszych wersji C#, ta "pula występowań" nieco się poszerzyła.


Na zakończenie dodam jedno: nie są to ABSOLUTNIE WSZYSTKIE zastosowania słowa kluczowego "using" w języku C#. Dodałem tylko te, na które natrafiłem w literaturze i z biegiem czasu będę rozbudowywać wartość tego wpisu, o ile będzie o co :).

PODOBNE ARTYKUŁY