Przestrzenie nazw C # (z przykładami)

W tym samouczku nauczymy się o przestrzeniach nazw, jak je definiować, uzyskiwać dostęp do ich elementów członkowskich i używać ich w programie C #.

Przestrzenie nazw są używane w języku C # do organizowania i zapewniania poziomu separacji kodów. Można je traktować jako kontener, który składa się z innych przestrzeni nazw, klas itp.

Przestrzeń nazw może mieć następujące typy jako jej elementy członkowskie:

  1. Przestrzenie nazw (zagnieżdżona przestrzeń nazw)
  2. Zajęcia
  3. Interfejsy
  4. Struktury
  5. Delegaci

Omówimy te tematy w dalszych samouczkach. Na razie będziemy trzymać się klas i przestrzeni nazw.

Przestrzenie nazw nie są obowiązkowe w programie C #, ale odgrywają ważną rolę w pisaniu czystszych kodów i zarządzaniu większymi projektami.

Zrozummy pojęcie przestrzeni nazw w scenariuszu z prawdziwego życia. Na naszym komputerze mamy dużą liczbę plików i folderów. Wyobraź sobie, jak trudno byłoby nimi zarządzać, gdyby były umieszczone w jednym katalogu. Dlatego umieściliśmy powiązane pliki i foldery w oddzielnym katalogu. Pomaga nam to właściwie zarządzać naszymi danymi.

Koncepcja przestrzeni nazw jest podobna w C #. Pomaga nam organizować różnych członków, umieszczając powiązanych członków w tej samej przestrzeni nazw.

Przestrzeń nazw rozwiązuje również problem konfliktu nazw . Dwie lub więcej klas umieszczonych w różnych przestrzeniach nazw może mieć taką samą nazwę.

Definiowanie przestrzeni nazw w C #

Możemy zdefiniować przestrzeń nazw w C # za pomocą słowa kluczowego namespace jako:

 namespace Namespace-Name (// Body of namespace) 

Na przykład:

 namespace MyNamespace ( class MyClass ( public void MyMethod() ( System.Console.WriteLine("Creating my namespace"); ) ) ) 

W powyższym przykładzie MyNamespacetworzona jest przestrzeń nazw . Składa się z klasy MyClassjako jej członka. MyMethodjest metodą klasową MyClass.

Dostęp do członków przestrzeni nazw w języku C #

Dostęp do elementów członkowskich przestrzeni nazw można uzyskać za pomocą dot(.)operatora. Składnia dostępu do członka przestrzeni nazw jest następująca:

 Nazwa przestrzeni nazw. Nazwa członka

Na przykład, jeśli potrzebujemy utworzyć obiekt MyClass, można to zrobić jako,

 MyNamespace.MyClass myClass = new MyNamespace.MyClass ();

Omówimy tworzenie obiektów w kolejnych tutorialach. Na razie skup się tylko na sposobie MyClassuzyskiwania dostępu do klasy .

Przykład 1: wprowadzenie przestrzeni nazw w programie 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(); ) ) ) 

Kiedy uruchomimy program, wynik będzie:

 Tworzę moją przestrzeń nazw

W powyższym programie stworzyliśmy własną przestrzeń nazw MyNamespacei uzyskaliśmy dostęp do jej elementów członkowskich z Main()metody wewnątrz MyClass. Jak wspomniano wcześniej, dot (.)operator jest używany do uzyskiwania dostępu do elementu członkowskiego przestrzeni nazw.

W Main()metodzie myMethod()metoda wywoływana jest za pomocą dot (.)operatora.

Korzystanie z przestrzeni nazw w języku C # (słowo kluczowe using)

Przestrzeń nazw można dołączyć do programu przy użyciu słowa kluczowego using. Składnia to:

 using Namespace-Name;

Na przykład,

 using System;

Zaletą tego podejścia jest to, że nie musimy określać w pełni kwalifikowanej nazwy członków tej przestrzeni nazw za każdym razem, gdy uzyskujemy do niej dostęp.

Kiedy linia

 using System;

znajduje się w górnej części programu. Możemy pisać

 Console.WriteLine ("Witaj świecie!");

Zamiast w pełni kwalifikowanej nazwy, tj

 System.Console.WriteLine ("Witaj świecie!");

Zagnieżdżona przestrzeń nazw w języku C #

Przestrzeń nazw może zawierać inną przestrzeń nazw. Nazywa się to zagnieżdżoną przestrzenią nazw. Dostęp do zagnieżdżonej przestrzeni nazw i jej elementów członkowskich można również uzyskać za pomocą dot (.)operatora.

Składnia tworzenia zagnieżdżonej przestrzeni nazw jest następująca:

 namespace MyNamespace (namespace NestedNamespace (// Treść zagnieżdżonej przestrzeni nazw)) 

Przykład 2: zagnieżdżona przestrzeń nazw w języku 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(); ) ) ) 

Kiedy uruchomimy program, wynik będzie:

 Przykład zagnieżdżonej przestrzeni nazw

Ten przykład ilustruje sposób implementacji zagnieżdżonej przestrzeni nazw w języku C #.

Tutaj mamy teraz dodatkową przestrzeń nazw wewnątrz MyNamespacenazwanych Nested. Więc zamiast używać MyNamespace.SampleClass.myMethod(), musimy użyć MyNamespace.Nested.SampleClass.myMethod().

Interesujące artykuły...