Bagikan melalui


namespace

Kata kunci namespace digunakan untuk mendeklarasikan cakupan yang berisi sekumpulan objek terkait. Anda dapat menggunakan namespace layanan untuk mengatur elemen kode dan membuat jenis unik secara global.

namespace SampleNamespace
{
    class SampleClass { }

    interface ISampleInterface { }

    struct SampleStruct { }

    enum SampleEnum { a, b }

    delegate void SampleDelegate(int i);

    namespace Nested
    {
        class SampleClass2 { }
    }
}

Deklarasi namespace layanan cakupan file memungkinkan Anda mendeklarasikan bahwa semua jenis dalam file berada dalam satu namespace layanan. Deklarasi namespace layanan cakupan file tersedia dengan C# 10. Contoh berikut ini mirip dengan contoh sebelumnya, tetapi menggunakan deklarasi namespace layanan cakupan file:

using System;

namespace SampleFileScopedNamespace;

class SampleClass { }

interface ISampleInterface { }

struct SampleStruct { }

enum SampleEnum { a, b }

delegate void SampleDelegate(int i);

Contoh sebelumnya tidak menyertakan namespace layanan berlapis. Namespace layanan cakupan file tidak boleh menyertakan deklarasi namespace layanan tambahan. Anda tidak dapat mendeklarasikan namespace layanan berlapis atau namespace layanan cakupan file kedua:

namespace SampleNamespace;

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

namespace AnotherNamespace; // Not allowed!

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

Dalam namespace layanan, Anda dapat mendeklarasikan nol atau lebih dari jenis berikut:

Kompilator menambahkan namespace layanan default. Namespace layanan tanpa nama ini, kadang-kadang disebut sebagai namespace layanan global, ada di setiap file. Ini berisi deklarasi yang tidak termasuk dalam namespace layanan yang dideklarasikan. Setiap pengidentifikasi di namespace layanan global tersedia untuk digunakan di namespace layanan bernama.

Namespace layanan secara implisit memiliki akses publik. Untuk diskusi tentang pengubah akses yang dapat Anda tetapkan ke elemen dalam namespace layanan, lihatPengubah Akses.

Dimungkinkan untuk menentukan namespace layanan dalam dua atau lebih deklarasi. Misalnya, contoh berikut menentukan dua kelas sebagai bagian dari namespace layanan MyCompany:

namespace MyCompany.Proj1
{
    class MyClass
    {
    }
}

namespace MyCompany.Proj1
{
    class MyClass1
    {
    }
}

Contoh berikut menunjukkan cara memanggil metode statik dalam namespace layanan berlapis.

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

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian Namespace layanan dari spesifikasi bahasa C#. Untuk informasi selengkapnya tentang deklarasi namespace layanan cakupan file, lihat spesifikasi fitur.

Lihat juga