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:
- Przestrzenie nazw (zagnieżdżona przestrzeń nazw)
- Zajęcia
- Interfejsy
- Struktury
- 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 MyNamespace
tworzona jest przestrzeń nazw . Składa się z klasy MyClass
jako jej członka. MyMethod
jest 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 MyClass
uzyskiwania 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 MyNamespace
i 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 MyNamespace
nazwanych Nested
. Więc zamiast używać MyNamespace.SampleClass.myMethod()
, musimy użyć MyNamespace.Nested.SampleClass.myMethod()
.