C# : İç İçe (Nested) Tanımlanmış İsim Alanları

c nested namespaces 150x150 C# : İç İçe (Nested) Tanımlanmış İsim Alanları dot net c sharp Merhaba arkadaşlar, bu dökümanda Nested Namespaces (iç içe geçmiş isim alanları) hakkında bilgi verip kullanımını göstermeye çalışacağım.
.NET sınıf kütüphanelerinde bu durum ile çok karşılaşıyoruz. Örneğin System isim alanında varolan Text, Security isim alanları gibi. Yazdığınız sınıf kütüphanelerinde sizde ihtiyaç duyabilirsiniz. İsminden de anlaşıldığı gibi iç içe tanımlanıyor.
Örnek olarak aşağıdakini ele alabiliriz;
using System;

namespace Mat
{
    class Toplam
    {
        public Toplam()
        { }

    }

    namespace Mat2
    {
        class Carpim
        {
            public Carpim()
            { }
        }

    }
}

class MainClass
{
    public static void Main()
    {
        Mat.Toplam toplam = new Mat.Toplam();
        Mat.Mat2.Carpim carpim = new Mat.Mat2.Carpim();
    }

}
Yukarıda görüldüğü gibi bir sınıfı çağırmak istediğimizde isim alanını belirtmek zorundayız, aklınıza matematikteki kümeler konusu gelip “Neden Mat2 isim alanındaki sınıfa Mat.Mat2.Carpim deyip ulaşıyorum, sonuçta Mat isim alanı onuda kapsıyor, Mat.Carpim diyemez miyim?” gibi bir soru kafanıza takılmasın, böyle birşey olamaz, olsaydı bile çok sorun ile karşı karşıya kalırdık. Aşağıda verdiğim kodlarda da göreceğiniz şekilde using Mat; ve using Mat.Mat2; deyip ulaşmak zorunda kalıyoruz. Yani sadece using Mat; deyip Mat isim alanındaki herşeye ulaşıcaz diye birşey yok. Tam adres belirtmek zorundayız.
Üst tarafta verdiğim kodlarda bir isim alanındaki sınıfı kurarken tam adresini yazdık. Aşağıda ise tam adrese gerek kalmadan nasıl kuracağımızı gösterdim. Yukarıdaki örnek ile eşdeğerdir.
using System;
using Mat;
using Mat.Mat2;

namespace Mat
{
    class Toplam
    {
        public Toplam()
        { }

    }

    namespace Mat2
    {
        class Carpim
        {
            public Carpim()
            { }
        }

    }
}

class MainClass
{
    public static void Main()
    {
        Toplam toplam = new Mat.Toplam();
        Carpim carpim = new Mat.Mat2.Carpim();
    }

}
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
1 Yorum
  1. Anonymous says:

    [...] [...]

Yorum yaz

XHTML: Kullanabileceğiniz taglar : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>