Aracılığıyla paylaş


Ad Alanlarını Kullanma (C# Programlama Kılavuzu)

Ad alanları, iki şekilde C# programları içinde yoğun olarak kullanılır.Alanlarından,.net Framework sınıflarını ad alanları birçok sınıflardan düzenlemek için kullanın.İkinci olarak, kendi ad alanlarýný bildirmek programlama daha büyük projelerde kapsam sınıf ve yöntem adları denetim yardımcı olabilir.

Ad alanlarına erişme

C# uygulamalarının çoğunu bölümü ile başlayan using yönergeleri.Bu bölüm, uygulama sık kullanıyor olması ve içinde bulunan bir yöntemi her zaman tam adı belirleyerek Programcı kaydeder ad alanlarını listeler.

Örneğin, satır ekleyerek:

using System;

Bir program başlangıcında, Programcı kodu kullanabilirsiniz:

Console.WriteLine("Hello, World!");

Yerine:

System.Console.WriteLine("Hello, World!");

Ad alanı diğer ad

using Yönergesi (C# Başvurusu) İçin bir diğer ad oluşturmak için de kullanılan bir ad.Örneğin, iç içe geçmiş ad alanları içeren önceden yazılmış bir ad alanı kullanıyorsanız, özellikle, aşağıdaki örnekte gösterildiği şekilde başvuran bir kestirme bir yol sağlamak üzere diğer bildirmek isteyebilirsiniz:

using Co = Company.Proj.Nested;  // define an alias to represent a namespace

Denetim kapsamı ad alanlarını kullanma

namespace Anahtar sözcüğünü bir kapsam bildirmek için kullanılır.Projenizi kapsamlarda oluşturma yeteneği kod düzenlemenize yardımcı olur ve genel olarak benzersiz türleri oluşturmanızı sağlar.Aşağıdaki örnekte, bir sınıfı başlıklı SampleClass biri diğerinin iç içe iki ad tanımlanır.. İşleci (C# Başvurusu) Hangi yöntemi çağrılan birbirinden ayırmak için kullanılır.

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

    // Create a nested namespace, and define another class. 
    namespace NestedNamespace
    {
        class SampleClass
        {
            public void SampleMethod()
            {
                System.Console.WriteLine(
                  "SampleMethod inside NestedNamespace");
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Displays "SampleMethod inside SampleNamespace."
            SampleClass outer = new SampleClass();
            outer.SampleMethod();

            // Displays "SampleMethod inside SampleNamespace."
            SampleNamespace.SampleClass outer2 = new SampleNamespace.SampleClass();
            outer2.SampleMethod();

            // Displays "SampleMethod inside NestedNamespace."
            NestedNamespace.SampleClass inner = new NestedNamespace.SampleClass();
            inner.SampleMethod();
        }
    }
}

Tam adları

Ad alanları ve türlerini gösteren mantıksal bir hiyerarşide tam adları tarafından açıklanan benzersiz başlıklar sahiptir.Örneğin, A.B , anlaşılacağı A ad alanı veya tür adıdır ve B içinde yuvalanmıştır.

Aşağıdaki örnekte, yuvalanmış sınıfları ve ad alanları vardır.Her varlık aşağıdaki yorum olarak tam adı gösterilir.

namespace N1     // N1
{
    class C1      // N1.C1
    {
        class C2   // N1.C1.C2
        {
        }
    }
    namespace N2  // N1.N2
    {
        class C2   // N1.N2.C2
        {
        }
    }
}

Önceki kod kesimi:

  • Ad N1 genel ad bir üyesidir.Bunun tam adı N1.

  • Ad N2 üyesi olduğu N1.Bunun tam adı N1.N2.

  • Sınıf C1 üyesi olduğu N1.Bunun tam adı N1.C1.

  • Sınıf adı C2 iki kez bu kod kullanılır.Ancak, tam nitelendirilmiş adlar benzersiz.İlk örneğini C2 içinde bildirilen C1; Bu nedenle, tam nitelikli adını taşır: N1.C1.C2.İkinci örneğini C2 bir ad alanı içinde bildirilen N2; Bu nedenle, tam adını, N1.N2.C2.

Önceki kod kesimi kullanarak, yeni bir sınıf üyesi ekleyebilirsiniz C3, ad N1.N2 gibi:

namespace N1.N2
{
    class C3   // N1.N2.C3
    {
    }
}

Genel olarak, kullanmak :: ad alanı diğer adını başvurmak için veya global:: genel ad alanına başvurmak için ve . türleri veya üyeleri alabilmek için.

Kullanmak için bir hata olduğunu :: tür bir ad alanı yerine başvuran diğer ad ile.Örne?in:

using Alias = System.Console;
class TestClass
{
    static void Main()
    {
        // Error 
        //Alias::WriteLine("Hi");

        // OK
        Alias.WriteLine("Hi");
    }
}

Unutmayın, word global önceden tanımlanmış bir diğer ad; değil Bu nedenle, global.X herhangi bir özel anlamı yok.Yalnızca ile kullanıldığında, özel bir anlamı edinme ::.

Derleyici uyarı CS0440 diğer tanımlarsanız üretilir adlı genel çünkü global:: her zaman genel ad ve bir diğer başvuruyor.Örneğin, uyarı aşağıdaki satırı oluşturur:

using global = System.Collections;   // Warning

Kullanarak :: diğer adları ile iyi bir fikirdir ve beklenmeyen ek türleri giriş karşı korur.Örneğin, bu örneði ele alalým:

using Alias = System;
namespace Library
{
    public class C : Alias.Exception { }
}

Bir tür adlı, ancak bu, çalışır Alias Sonradan sunulan için olan Alias. bu tür yerine bağlamak.Kullanarak Alias::Exception , oluşturmasını sağlar Alias ad alanı diğer ad işlem görür ve bir yazısında mistaken değil.

Konusuna Nasıl yapılır: Genel Ad Alanı Diğer Adlarını Kullanma (C# Programlama Kılavuzu) daha fazla bilgi için ilgili global diğer adı.

Ayrıca bkz.

Başvuru

Ad Alanları (C# Programlama Kılavuzu)

Ad Alanı Anahtar Sözcükleri (C# Başvurusu)

. İşleci (C# Başvurusu)

:: İşleci (C# Başvurusu)

extern (C# Başvurusu)

Kavramlar

C# Programlama Kılavuzu