Share via


naamruimte

Het namespace trefwoord wordt gebruikt om een bereik te declareren dat een set gerelateerde objecten bevat. U kunt een naamruimte gebruiken om code-elementen te organiseren en wereldwijd unieke typen te maken.

namespace SampleNamespace
{
    class SampleClass { }

    interface ISampleInterface { }

    struct SampleStruct { }

    enum SampleEnum { a, b }

    delegate void SampleDelegate(int i);

    namespace Nested
    {
        class SampleClass2 { }
    }
}

Met declaraties voor bestandsbereiken kunt u declareren dat alle typen in een bestand zich in één naamruimte bevinden. Declaraties van naamruimten met bestandsbereik zijn beschikbaar met C# 10. Het volgende voorbeeld is vergelijkbaar met het vorige voorbeeld, maar maakt gebruik van een naamruimtedeclaratie met bestandsbereik:

using System;

namespace SampleFileScopedNamespace;

class SampleClass { }

interface ISampleInterface { }

struct SampleStruct { }

enum SampleEnum { a, b }

delegate void SampleDelegate(int i);

Het voorgaande voorbeeld bevat geen geneste naamruimte. Naamruimten met bestandsbereik kunnen geen aanvullende naamruimtedeclaraties bevatten. U kunt geen geneste naamruimte of een tweede naamruimte met bestandsbereik declareren:

namespace SampleNamespace;

class AnotherSampleClass
{
    public void AnotherSampleMethod()
    {
        System.Console.WriteLine(
            "SampleMethod inside SampleNamespace");
    }
}

namespace AnotherNamespace; // Not allowed!

namespace ANestedNamespace // Not allowed!
{
   // declarations...
}

Binnen een naamruimte kunt u nul of meer van de volgende typen declareren:

De compiler voegt een standaardnaamruimte toe. Deze niet-benoemde naamruimte, ook wel de algemene naamruimte genoemd, is aanwezig in elk bestand. Het bevat declaraties die niet zijn opgenomen in een gedeclareerde naamruimte. Elke id in de globale naamruimte is beschikbaar voor gebruik in een benoemde naamruimte.

Naamruimten hebben impliciet openbare toegang. Zie Toegangsmodifiers voor een bespreking van de toegangsmodifiers die u kunt toewijzen aan elementen in een naamruimte.

Het is mogelijk om een naamruimte in twee of meer declaraties te definiëren. In het volgende voorbeeld worden bijvoorbeeld twee klassen gedefinieerd als onderdeel van de MyCompany naamruimte:

namespace MyCompany.Proj1
{
    class MyClass
    {
    }
}

namespace MyCompany.Proj1
{
    class MyClass1
    {
    }
}

In het volgende voorbeeld ziet u hoe u een statische methode aanroept in een geneste naamruimte.

namespace SomeNameSpace
{
    public class MyClass
    {
        static void Main()
        {
            Nested.NestedNameSpaceClass.SayHello();
        }
    }

    // a nested namespace
    namespace Nested
    {
        public class NestedNameSpaceClass
        {
            public static void SayHello()
            {
                Console.WriteLine("Hello");
            }
        }
    }
}
// Output: Hello

C#-taalspecificatie

Zie de sectie Naamruimten van de C#-taalspecificatie voor meer informatie. Zie de functiespecificatie voor meer informatie over declaraties van bestandsbereiken.

Zie ook