Bu eğitimde, Ad alanlarını, onu nasıl tanımlayacağımızı, üyelerine erişmeyi ve bir C # programında kullanmayı öğreneceğiz.
Ad alanları, kodların bir düzeyde ayrılmasını düzenlemek ve sağlamak için C # 'da kullanılır. Diğer ad alanlarından, sınıflardan vb. Oluşan bir kap olarak düşünülebilirler.
Bir ad alanı, üyeleri olarak aşağıdaki türlere sahip olabilir:
- Ad Alanları (Yuvalanmış Ad Alanı)
- Sınıflar
- Arayüzler
- Yapılar
- Delegeler
Bu konuları daha sonraki derslerde tartışacağız. Şimdilik sınıflara ve ad alanlarına bağlı kalacağız.
Ad alanları bir C # programında zorunlu değildir, ancak daha temiz kodlar yazmada ve daha büyük projeleri yönetmede önemli bir rol oynarlar.
Ad alanı kavramını gerçek hayat senaryosu ile anlayalım. Bilgisayarımızda çok sayıda dosya ve klasör var. Tek bir dizine yerleştirildiklerinde onları yönetmenin ne kadar zor olacağını bir düşünün. Bu nedenle ilgili dosya ve klasörleri ayrı bir dizine koyuyoruz. Bu, verilerimizi doğru şekilde yönetmemize yardımcı olur.
Ad alanı kavramı C # 'da benzerdir. İlgili üyeleri aynı ad alanına yerleştirerek farklı üyeleri düzenlememize yardımcı olur .
Ad alanı, adlandırma çakışması sorununu da çözer . Farklı ad alanlarına yerleştirildiğinde iki veya daha fazla sınıf aynı ada sahip olabilir.
C # 'da Ad Alanı Tanımlama
Ad alanı anahtar kelimesini kullanarak C # 'da bir ad alanı tanımlayabiliriz:
isim-alanı İsim-alanı-İsim (// isim-alanı gövdesi)
Örneğin:
namespace MyNamespace ( class MyClass ( public void MyMethod() ( System.Console.WriteLine("Creating my namespace"); ) ) )
Yukarıdaki örnekte, bir ad alanı MyNamespace
oluşturulmuştur. Üyesi olarak bir sınıftan oluşur MyClass
. MyMethod
bir sınıf yöntemidir MyClass
.
C # 'da Ad Alanı Üyelerine Erişim
Bir ad alanının üyelerine dot(.)
operatör kullanılarak erişilebilir . Ad alanı üyesine erişim için sözdizimi,
Ad-alanı-Adı.Üye-Adı
Örneğin, MyClass'ın bir nesnesini oluşturmamız gerekirse, şu şekilde yapılabilir:
MyNamespace.MyClass myClass = new MyNamespace.MyClass ();
Sonraki derslerde nesne oluşturma hakkında tartışacağız. Şimdilik sadece sınıfa nasıl MyClass
erişildiğine odaklanın .
Örnek 1: C # Programında Ad Alanı Tanıtımı
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(); ) ) )
Programı çalıştırdığımızda çıktı şöyle olacaktır:
Ad alanımı oluşturma
Yukarıdaki programda kendi ad alanımızı oluşturduk MyNamespace
ve üyelerine Main()
içindeki yöntemden eriştik MyClass
. Daha önce de belirtildiği gibi, dot (.)
operatör ad alanı üyesine erişmek için kullanılır.
İn Main()
yöntemi, myMethod()
yöntem kullanılarak çağırılır dot (.)
operatör.
C # 'da Ad Alanı Kullanma (Anahtar Kelime Kullanımı)
Using anahtar sözcüğü kullanılarak bir programa bir ad alanı dahil edilebilir. Sözdizimi,
Namespace-Name kullanarak;
Örneğin,
Sistem kullanarak;
Bu yaklaşımın avantajı, ona her eriştiğimizde o ad alanının üyelerinin tam nitelikli adını belirtmemiz gerekmemesidir.
Çizgi bir kez
Sistem kullanarak;
programın üst kısmında yer almaktadır. Yazabiliriz
Console.WriteLine ("Merhaba Dünya!");
Tam nitelenmiş isim yerine yani
System.Console.WriteLine ("Merhaba Dünya!");
C # 'ta İç içe Ad Alanı
Bir ad alanı başka bir ad alanı içerebilir. Yuvalanmış ad alanı olarak adlandırılır. İç içe geçmiş ad alanına ve üyelerine dot (.)
işleç kullanılarak da erişilebilir .
Yuvalanmış ad alanı oluşturmanın sözdizimi aşağıdaki gibidir:
ad alanı MyNamespace (ad alanı NestedNamespace (// iç içe geçmiş ad alanı gövdesi))
Örnek 2: C # 'ta İç içe Ad Alanı
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(); ) ) )
Programı çalıştırdığımızda çıktı şöyle olacaktır:
İç İçe Ad Alanı Örneği
Bu örnek, C # 'da yuvalanmış ad alanının nasıl uygulanabileceğini gösterir.
Burada, artık MyNamespace
adı verilen fazladan bir ad alanımız var Nested
. Yani kullanmak yerine MyNamespace.SampleClass.myMethod()
kullanmalıyız MyNamespace.Nested.SampleClass.myMethod()
.