U ovom uputstvu naučit ćemo o imenskim prostorima, kako ga definirati, pristupiti njegovim članovima i koristiti ga u programu C #.
Prostori imena koriste se u jeziku C # za organiziranje i pružanje razine odvojenosti kodova. Mogu se smatrati spremnikom koji se sastoji od drugih prostora imena, klasa itd.
Prostor imena može imati sljedeće tipove kao svoje članove:
- Prostori imena (ugniježđeni prostor imena)
- Nastava
- Sučelja
- Strukture
- Delegati
O tim ćemo temama razgovarati u kasnijim tutorijalima. Za sada ćemo se držati klasa i prostora imena.
Prostori imena nisu obvezni u programu C #, ali igraju važnu ulogu u pisanju čistijih kodova i upravljanju većim projektima.
Razumijemo koncept prostora imena sa stvarnim scenarijem. Na našem računalu imamo velik broj datoteka i mapa. Zamislite kako bi bilo teško njima upravljati ako su smješteni u jedan direktorij. Zbog toga smo povezane datoteke i mape stavili u zasebni direktorij. To nam pomaže da pravilno upravljamo podacima.
Koncept prostora imena sličan je u C #. Pomaže nam organizirati različite članove stavljanjem povezanih članova u isti prostor imena.
Prostor imena također rješava problem sukoba imenovanja . Dvije ili više klasa kada se stave u različite prostore imena mogu imati isto ime.
Definiranje prostora imena u C #
Prostor imena možemo definirati u C # pomoću ključne riječi za prostor imena kao:
namespace Ime prostora-Ime (// Tijelo prostora imena)
Na primjer:
namespace MyNamespace ( class MyClass ( public void MyMethod() ( System.Console.WriteLine("Creating my namespace"); ) ) )
U gornjem primjeru MyNamespace
kreira se prostor imena . Sastoji se od klase MyClass
kao svog člana. MyMethod
je metoda klase MyClass
.
Pristup članovima prostora imena u C #
Članovima prostora imena može se pristupiti pomoću dot(.)
operatora. Sintaksa pristupa članu prostora imena je,
Ime-prostora-Ime.Član-Ime
Na primjer, ako trebamo stvoriti objekt MyClass-a, to se može učiniti kao,
MyNamespace.MyClass myClass = novi MyNamespace.MyClass ();
O stvaranju objekata razgovarat ćemo u kasnijim vodičima. Za sada se samo usredotočite na način pristupa klasi MyClass
.
Primjer 1: Uvođenje prostora imena u programu C #
using System; namespace MyNamespace ( public class SampleClass ( public static void myMethod() ( Console.WriteLine("Creating my namespace"); ) ) ) namespace MyProgram ( public class MyClass ( public static void Main() ( MyNamespace.SampleClass.myMethod(); ) ) )
Kada pokrenemo program, izlaz će biti:
Stvaranje mog prostora imena
U gore navedenom programu stvorili smo vlastiti prostor imena MyNamespace
i pristupili njegovim članovima iz Main()
metode iznutra MyClass
. Kao što je ranije rečeno, dot (.)
operator se koristi za pristup članu prostora imena.
U Main()
metodi se myMethod()
metoda poziva pomoću dot (.)
operatora.
Korištenje prostora imena u C # (Uporaba ključne riječi)
Prostor imena može se uključiti u program pomoću ključne riječi using. Sintaksa je,
pomoću Imena prostora-Ime;
Na primjer,
pomoću sustava;
Prednost ovog pristupa je što ne moramo navesti potpuno kvalificirano ime članova tog prostora imena svaki put kad mu pristupamo.
Jednom crta
pomoću sustava;
je uključen na vrh programa. Možemo pisati
Console.WriteLine ("Pozdrav svijetu!");
Umjesto potpuno kvalificiranog imena tj
System.Console.WriteLine ("Pozdrav svijetu!");
Ugniježđeni prostor imena u C #
Prostor imena može sadržavati drugi prostor imena. Zove se ugniježđeni prostor imena. Ugniježđenom prostoru imena i njegovim članovima također se može pristupiti pomoću dot (.)
operatora.
Sintaksa za stvaranje ugniježđenog prostora imena je sljedeća:
prostor imena MyNamespace (prostor imena NestedNamespace (// Tijelo ugniježđenog prostora imena))
Primjer 2: Ugniježđeni prostor imena u C #
using System; // Nested Namespace namespace MyNamespace ( namespace Nested ( public class SampleClass ( public static void myMethod() ( Console.WriteLine("Nested Namespace Example"); ) ) ) ) namespace MyProgram ( public class MyClass ( public static void Main() ( MyNamespace.Nested.SampleClass.myMethod(); ) ) )
Kada pokrenemo program, izlaz će biti:
Primjer ugniježđenog prostora imena
Ovaj primjer ilustrira kako se ugniježđeni prostor imena može implementirati u C #.
Evo, sada imamo dodatni prostor imena koji se MyNamespace
zove Nested
. Dakle, umjesto da koristimo MyNamespace.SampleClass.myMethod()
, moramo koristiti MyNamespace.Nested.SampleClass.myMethod()
.