V tomto kurzu se dozvíme o jmenných prostorech, jak je definovat, přistupovat k jejich členům a používat je v C # programu.
Jmenné prostory se v C # používají k organizaci a zajištění úrovně oddělení kódů. Lze je považovat za kontejner, který se skládá z jiných jmenných prostorů, tříd atd.
Obor názvů může mít jako členy následující typy: A namespace can have following types as its members:
- Jmenné prostory (vnořený jmenný prostor)
- Třídy
- Rozhraní
- Struktury
- Delegáti
O těchto tématech budeme diskutovat v pozdějších cvičeních. Prozatím zůstaneme u tříd a jmenných prostorů.
Jmenné prostory nejsou v programu C # povinné, ale hrají důležitou roli při psaní čistších kódů a správě větších projektů.
Pojďme pochopit koncept jmenného prostoru se scénářem z reálného života. V počítači máme velké množství souborů a složek. Představte si, jak obtížné by bylo spravovat je, pokud by byly umístěny do jednoho adresáře. Proto jsme přidali související soubory a složky do samostatného adresáře. To nám pomáhá správně spravovat naše data.
Koncept oboru názvů je podobný v C #. Pomáhá nám organizovat různé členy tím, že spojuje příbuzné členy do stejného prostoru jmen.
Obor názvů také řeší problém konfliktu pojmenování . Dvě nebo více tříd po vložení do různých jmenných prostorů může mít stejný název.
Definování jmenného prostoru v C #
Můžeme definovat jmenný prostor v C # pomocí klíčového slova jmenného prostoru jako:
namespace Namespace-Name (// Body of namespace)
Například:
namespace MyNamespace ( class MyClass ( public void MyMethod() ( System.Console.WriteLine("Creating my namespace"); ) ) )
Ve výše uvedeném příkladu MyNamespace
je vytvořen jmenný prostor . Skládá se z třídy MyClass
jako jejího člena. MyMethod
je metoda třídy MyClass
.
Přístup k členům jmenného prostoru v C #
K členům oboru názvů lze přistupovat pomocí dot(.)
operátoru. Syntaxe pro přístup k členovi oboru názvů je,
Název oboru názvů. Název člena
Například pokud potřebujeme vytvořit objekt MyClass, lze to udělat jako,
MyNamespace.MyClass myClass = nový MyNamespace.MyClass ();
O vytváření objektů budeme diskutovat v pozdějších cvičeních. Zatím se jen zaměřte na to, jak je třída MyClass
přístupná.
Příklad 1: Představení oboru názvů v 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(); ) ) )
Když spustíme program, výstup bude:
Vytváření mého jmenného prostoru
Ve výše uvedeném programu jsme vytvořili náš vlastní jmenný prostor MyNamespace
a přistupovali k jeho členům z Main()
metody uvnitř MyClass
. Jak již bylo řečeno, dot (.)
operátor se používá pro přístup k členovi oboru názvů.
V Main()
metodě se myMethod()
metoda volá pomocí dot (.)
operátoru.
Používání jmenného prostoru v C # (Používání klíčového slova)
Obor názvů lze zahrnout do programu pomocí klíčového slova using. Syntaxe je,
pomocí Namespace-Name;
Například,
pomocí systému;
Výhodou tohoto přístupu je, že nemusíme zadávat plně kvalifikovaný název členů daného oboru názvů pokaždé, když k němu přistupujeme.
Jednou linka
pomocí systému;
je zahrnuta v horní části programu. Můžeme psát
Console.WriteLine („Hello World!“);
Místo plně kvalifikovaného názvu, tj
System.Console.WriteLine ("Hello World!");
Vnořený jmenný prostor v C #
Obor názvů může obsahovat jiný obor názvů. Říká se tomu vnořený jmenný prostor. K vnořenému oboru názvů a jeho členům lze přistupovat také pomocí dot (.)
operátoru.
Syntaxe pro vytváření vnořeného oboru názvů je následující:
namespace MyNamespace (namespace NestedNamespace (// Body of nested namespace))
Příklad 2: Vnořený jmenný prostor v 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(); ) ) )
Když spustíme program, výstup bude:
Příklad vnořeného oboru názvů
Tento příklad ukazuje, jak lze vnořený jmenný prostor implementovat v C #.
Zde nyní máme uvnitř MyNamespace
volán další jmenný prostor Nested
. Takže místo použití MyNamespace.SampleClass.myMethod()
musíme použít MyNamespace.Nested.SampleClass.myMethod()
.