Ev - İnternet kurulumu
Sınıflar ve ad alanları. Sınıflar ve Ad Alanları Ad Alanlarını Kullanma ve Bildirme

Sınıflar ve Ad Alanları

.NET Framework sınıfları

Yönetilen kod yazmanın belki de en büyük faydası (en azından geliştirici açısından) şunları kullanabilmenizdir: .NET temel sınıf kitaplığı .

.NET çekirdek sınıfları, daha önce Windows API kullanılarak çözülebilen hemen hemen her sorunu çözmenize olanak tanıyan çok sayıda yönetilen kod sınıfı koleksiyonu sağlar. Bu sınıfların tümü, tek kalıtımla aynı IL nesne modelini takip eder. Bu, herhangi bir .NET temel sınıfından nesneler oluşturabileceğiniz veya onlardan kendi sınıflarınızı miras alabileceğiniz anlamına gelir.

.NET temel sınıflarını farklı kılan şey, sezgisel ve kullanımı kolay olacak şekilde tasarlanmış olmalarıdır. Örneğin, bir iş parçacığı başlatmak için sınıfın Start() yöntemini çağırmanız gerekir. İplik. Bir TextBox nesnesini kullanılamaz duruma getirmek için nesnenin Enabled özelliğini false olarak ayarlayın. Kütüphanelerinin kullanımı da bir o kadar kolay olan Visual Basic ve Java geliştiricilerine tanıdık gelen bu yaklaşım, GetDIBits(), RegisterWndClassEx() ve IsEqualIID() gibi API işlevleriyle yıllardır uğraşan C++ geliştiricileri için büyük bir rahatlama olacaktır. yanı sıra pencere tutamaçlarını geçmeyi gerektiren birçok işlev.

Bununla birlikte, C++ geliştiricileri her zaman tüm Windows API'lerine kolay erişime sahipken, Visual Basic 6 ve Java geliştiricileri kendi dillerinden eriştikleri temel işletim sistemi işlevleriyle sınırlıydı. .NET temel sınıfları, Visual Basic ve Java kitaplıklarının kullanım kolaylığını Windows API özellik kümesinin nispeten eksiksiz kapsamıyla birleştirir. Pek çok Windows özelliğine temel sınıflar aracılığıyla erişilemez ve bu durumlarda API işlevlerine başvurmanız gerekir, ancak genel olarak bu yalnızca en egzotik işlevler için geçerlidir. Günlük kullanım için genellikle bir dizi temel sınıf yeterli olacaktır. Ancak bir API işlevini çağırmanız gerekiyorsa, .NET sözde işlevi sağlar. platform çağırma mekanizması Veri türlerinin doğru şekilde dönüştürülmesini garanti eden , bu görev artık kodun hangi dilde (C#, C++ veya Visual Basic 2010) yazıldığına bakılmaksızın bu işlevleri doğrudan C++ kodundan çağırmaktan daha zor değil.

Ad alanları

Ad alanları.NET'in sınıflar arasındaki adlandırma çakışmalarını önlemenin bir yoludur. Bunlar, bir müşteriyi temsil eden bir sınıf tanımladığınız, buna Müşteri adını verdiğiniz ve daha sonra başka birinin aynı şeyi yaptığı (bu oldukça yaygın bir senaryodur) durumları önlemek için tasarlanmıştır.

Ad alanı, bir grup veri türünden başka bir şey değildir, ancak ad alanı içindeki tüm veri türlerinin adlarının otomatik olarak ad alanı adının önüne eklenmesi etkisine sahiptir. Ad alanları birbirinin içine yerleştirilebilir. Örneğin, genel amaçlı .NET temel sınıflarının çoğu ad alanında bulunur Sistem. Temel sınıf Sıralamak bu alanı ifade eder, dolayısıyla tam adı Sistem.Dizi.

.NET platformu tüm adların bir ad alanı içinde bildirilmesini gerektirir; örneğin sınıfınızı koyabilirsiniz Sınıfım ad alanına Şirketim. O zaman bu sınıfın tam adı şöyle görünecek Şirketim.Sınıfım.

Bir ad alanı açıkça belirtilmezse türün adsız genel ad alanına ekleneceğini unutmayın.

Çoğu durumda, Microsoft en az iki iç içe ad alanının kullanılmasını önerir: Birincisi şirketinizin adıdır, ikincisi ise sınıfın ait olduğu teknoloji veya yazılım paketinin adıdır; yani şuna benzer: MyCompany.SomeNamespace .Sınıfım. Çoğu durumda bu yaklaşım, uygulamanızın sınıflarını, diğer şirketlerin geliştiricileri tarafından yazılan sınıf adlarıyla olası çatışmalardan koruyacaktır.

Aşağıdaki tablo, .NET'te sunulan ve işlevselliğe göre gruplara ayrılmış ad alanlarının bazılarının (ama kesinlikle hepsinin değil) kısa bir listesini sağlar:

.NET Framework Anahtar Ad Alanları
.NET'te ad alanı Tanım
Sistem Ad alanının içinde Sistem Dahili veriler, matematik, rastgele sayı üretimi, ortam değişkenleri ve çöp toplama ile ilgilenmek için birçok yararlı türün yanı sıra yaygın olarak kullanılan bir dizi istisna ve öznitelik içerir.
Sistem.Koleksiyonlar
System.Collections.Generic
Bu ad alanları, özel koleksiyonlar oluşturmanıza olanak tanıyan çeşitli temel türlerin ve arayüzlerin yanı sıra bir dizi kapsayıcı türü içerir.
Sistem.Verileri
System.Data.Common
System.Data.EntityClient
System.Data.SqlClient
Bu ad alanları, ADO.NET kullanarak veritabanlarıyla etkileşimde bulunmak için kullanılır.
Sistem.IO
Sistem.IO.Sıkıştırma
Sistem.IO.Bağlantı Noktaları
Bu alanlar, dosya G/Ç'sini, veri sıkıştırmayı ve bağlantı noktası manipülasyonunu yönetmek için tasarlanmış birçok tür içerir.
Sistem.Yansıma
System.Reflection.Emit
Bu ad alanları, dinamik tür oluşturmanın yanı sıra çalışma zamanı tür keşfini destekleyen türleri içerir
System.Runtime.InteropServices Bu ad alanı, .NET türlerinin "yönetilmeyen kod" (C tabanlı DLL'ler ve COM sunucuları gibi) ve bunun tersi ile etkileşime girmesine izin verebileceğiniz araçları içerir.
Sistem.Çizim
System.Windows.Forms
Bu ad alanları, yerel .NET (Windows Forms) grafik araç setini kullanarak masaüstü uygulamaları oluşturmak için kullanılan türleri içerir.
Sistem.Windows
System.Windows.Controls
System.Windows.Shapes
Uzay Sistem.Windows bir dizi Windows Sunum Vakfı (WPF) grafik aracını temsil eden bu çeşitli ad alanlarının köküdür
System.Linq
System.Xml.Linq
System.Data.DataSetExtensions
Bu ad alanları, LINQ API'sini kullanarak programlama yaparken kullanılan türleri içerir.
Sistem.Web Bu ad alanı, ASP.NET web uygulamaları oluşturmanıza olanak tanıyan birçok ad alanından biridir
System.ServiceModel Bu ad alanı, Windows Communication Foundation (WCF) API'sini kullanarak dağıtılmış uygulamalar oluşturmak için kullanabileceğiniz birçok ad alanından biridir.
System.Workflow.Runtime
Sistem.İş Akışı.Etkinlikler
Bu iki ad alanı, Windows Workflow Foundation (WWF) API'sini kullanarak iş akışı özellikli uygulamalar oluşturmak için kullanılan türleri içeren birçok ad alanının ana temsilcileridir.
System.Threading
System.Threading.Tasks
Bu ad alanı, iş yükünü birden çok CPU'ya dağıtabilen çok iş parçacıklı uygulamalar oluşturmaya yönelik çok sayıda tür içerir.
Sistem.Güvenlik Güvenlik .NET dünyasının doğasında vardır. Güvenlikle ilgili ad alanları izinler, kriptografik güvenlik vb. ile ilgilenen birçok tür içerir.
System.Xml Bu XML odaklı ad alanı, XML verileriyle etkileşimde bulunmak için kullanılabilecek çok sayıda tür içerir

Microsoft kök alanının rolü

Tablodaki listeyi incelerken, System ad alanının yeterli sayıda iç içe geçmiş ad alanının (System.IO, System.Data vb. gibi) kökü olduğunu fark etmek kolaydı. Ancak görünen o ki, Sistem'e ek olarak temel sınıf kitaplığı aynı zamanda bir dizi başka üst düzey kök ad alanı da sunuyor; bunlardan en kullanışlısı Microsoft ad alanı.

İsim alanı std'nin kullanılmasının ne olduğu sorusuna cevap verirken, öncelikle şunu belirtmek gerekir ki, İngilizce'den çevrildiğinde açıklanan terimin, bildirimin kapsamı olan ve çeşitli tanımlama formlarını tanımlamak için gerekli olan bir ad alanı anlamına geldiğine dikkat edilmelidir: fonksiyonlar ve bağımlı/bağımsız değişkenler.

Bu sayede, birden fazla değişkenin aynı değerleri aldığı durumlar olduğu için isimler arasında herhangi bir çelişki yaşanmaz. Genellikle bu, farklı kitaplıklar oluşturulduğunda gerçekleşir.

Tanımlayıcılar birbirleriyle ilişkili olarak serbestçe kullanılabilir. Tam ad biçimini kullanırken bağımsız üyelere ücretsiz erişim elde ederler.

Bunun için son derece önemlidir böylece nesne std ad alanını kullanarak adın tam biçimini içerir. Bu, bildirimin alan adına yerleştirildiğinde nasıl göründüğünü görsel olarak anlamak açısından önemlidir.

Resimde kodlamalara erişimin çeşitli varyasyonları gösterilmektedir, çitlerinin içinde ve arkasında bulunur:

1 İşte böyle görünüyor Ad Soyad:

2 Mevcut bir reklamı desteklemek amacıyla, kullanarak ekleyin:

3 Mevcut tüm kimlikleri eklemek için, uygun yönergeyi kullanın:

Yönergeyi Kullanma

using yönergesi, ad alanında bulunan tüm mevcut adların kullanılmasına izin verir.

Bir niteleyici belirtmeye gerek yoktur.

Cpp formatındaki bir dosyada kullanarak kullanmanız gerekir. Ancak önemli bir koşul, birkaç tanımlayıcının varlığıdır.

Sadece birkaç ismin olduğu durumlarda sıradan bir isim oluşturmak uygun olacaktır.

Daha sonra yalnızca gerekli tanımlayıcıları ekleyebilir ve gerisini kendi haline bırakabilirsiniz.

Yerel değişkenin adı ile ana değişkenin adı çakışıyorsa, bu durumda ilkinin gizli erişimde olacağını unutmamak önemlidir.

Lütfen aynı adda değişken oluşturmanın yasa dışı olduğunu unutmayın.

Tavsiye! Kullanım kolaylığı için, kullanma yönergesi cpp formatındaki dosyanın en üstüne yerleştirilebilir veya tam tersi, oluşturulan kitaplığın içine yerleştirilebilir.

Kendiniz için en konforlu çalışma koşullarını sağlamak için gerekli dosyaları yerleştirmeye çalışabilirsiniz.

Kesinlikle gerekli olmadıkça kullanma talimatı yerleştirilmemelidir. H formatındaki dosyadaki başlıklarda.

Bunun nedeni, bu eylemle birlikte tüm tanımlayıcıların görünürlük alanında aktif hale gelmesi ve bazı adların çakışma olasılığının artmasıdır.

Dosyalar için en iyi çözüm tam adı kullanmaktır.

Çok uzun olmaları durumunda takma ad şeklinde bir kısaltma kullanabilirsiniz.

Ad Alanı Bildirimleri

Reklamların dosya adı biçiminde yerleştirilmesi gelenekseldir. Belirtilen işlevlerin yürütülmesinin ayrı bir kitaplıkta veya dosyada bulunması durumunda, tam adın belirlenmesi önemlidir.

Hangi eylemlerden bahsettiğimizi anlamak için buna değer aşağıdaki resme göz atın:

cpp.contosodata formatı fonksiyonunu uygulamak için, vakada tam adın kullanılması da önemlidir. direktif en başta olduğunda:

Ad alanı std'sini kullanma. aynı dosyada birden fazla bölümdeki reklamları içerebilir.

Derleyici sayesinde veri işlenirken tüm unsurlar birleştirilir.

Bu nedenle, örneğin std., kural olarak, standart türdeki erişilebilir kitaplıklarda bulunan erişilebilir dosyaların tüm başlıklarında bildirilir.

Tam nitelikli bir adla belirlenen üyeler, yalnızca ad alanı içinde değil, açık bir niteliğe sahip olmaları durumunda bunun dışında da tanımlanabilir.

Tanıma gelince, oluşturulduğu ad alanındaki bildirimden sonra gelmelidir.

Görsel bir örnek olarak aşağıdaki resme dikkat edin:

Çoğu zaman, bu hata, tanım sırası ihlal edildiğinde veya tam adın kurucu kısımları hemen mevcut nesnelere dahil edildiğinde ortaya çıkar.

Çerezler belirli bir ad alanında bildirilmediğinde, resmi olarak küresel tip uzayına aittir.

Tavsiye! Kesinlikle gerekli olmadıkça, üyelerin global tip alanına dahil edilmesinden kaçınılması önerilir.

Kuralın önemli bir istisnası ancak ana seçenek, geniş bir alana zorunlu olarak dahil olmayı ima ediyor.

Genel bir tür tanımlayıcı oluşturmak için karşılık gelen görünürlük işlevini tam ad biçiminde etkinleştirmeniz gerekir.

Bu eylem, bir tanımlayıcının farklı bir ad alanındaki diğer mevcut tanımlayıcılardan ayırt edici bir özelliğinin oluşturulmasına yardımcı olacaktır.

Bu, kodu anlamanıza yardımcı olacaktır.

Uzay std.

Boşlukların iç içe geçmiş tipte olabileceğini belirtmekte fayda var.

Sıradan bir gömme kastediliyorsa bu, tüm mekana sınırsız bir karakter kazandırıyor demektir.

Veli üyelerinden bahsetmişken, onların böyle bir işlevi yoktur.

Genişletme için yerleşik ataşmanlar gereklidir.

Daha kesin bir tanım ve anlayış için, aşağıdaki resme dikkat edin:

Daha ileri uygulama için bilgileri kapsülleyen bu öğe aynı zamanda sıradan bir iç içe geçmiş alanın parçası olabilir ve ana alanda açık tip bir arayüz görevi görebilir.

Karşılaştırmalar standart tipteki sıradan eklerdir ve üst ad alanının yerleşik üyeleridir.

Sonuç olarak, argümanlara bağımlılığın olacağı bir tür aşırı yüke sahip işlevler için aramayı kullanabilirsiniz.

Bağlamanın nasıl yapıldığına dair bir örnek görmek için, Aşağıdaki örneğe değinmekte fayda var:

Aşağıdaki resim ana alan şablonundaki uzmanlaşma sürecini göstermektedir, yerleşik bir türün geçici alanında bildirilen:

Yerleşik alanlardan yararlanılarak standart kütüphanelerdeki arayüzün farklı versiyonlarını yönetmek mümkündür.

Tek bir ana alan oluşturmak ve sunulan her arayüzü kapsüllemek mümkündür.

Ancak, paylaşılan üst alandaki bir ek biçiminde olması gerekir.

Daha sonra müşteri kodu otomatik olarak yeni kombinasyona atanır.

Eski sürümü kullanmaya alışan kullanıcılar sorunsuz bir şekilde kullanmaya devam edebilirler.

Bunu yapmak için ekin tam yolunu oluşturmanız gerekir.

İlk duyuruyu düzenlemek için satır içi anahtar kullanmanız gerekir.

Her birinde boşluk bulunan iki arayüz seçeneğinin aşağıdaki örneğine bakalım. İstemci kodu ayrıca yeni kitaplıklardan yararlanma yeteneğine de sahiptir.

Süreci görselleştirmek için Aşağıdaki görsele geçelim:

Tüm adların son derece benzersiz olması gerekir, bu nedenle uzunlukları önemli ölçüde artar;

Ancak burada bir kullanma direktifinin kullanılması mümkün değildir.

Yalnızca bir ad alanı için takma ad oluşturmak mümkündür.

Bu durumda aşağıdaki örneği inceleyin:

Sıradan bir alan oluşturmak da mümkündür ancak buna bir takma ad atanmaz.

Böyle bir bölgesel spektruma anonim denir.

Kural olarak, bildirimdeki üyelerin diğer nesnelerdeki kodlama için görünmez olması gereken durumlarda kullanılır.

Tüm tanımlayıcılar görülebildiğinde tüm yapı, oluşturulan alanın dışında görünmez kalacaktır.

Dikkate değer ad alanının kendisi de bloğun dışında görünmez olacaktır, dolayısıyla her kullanıcı bu ayrıntıyı önceden dikkate almalıdır.

Tipik olarak, Visual C++ ile çalışanlar için bilginin kullanımı gereklidir.

Kaliteli örnekler kullanarak bu konuyu anlamak çok daha kolay olacaktır.

C++'da ad alanı nedir?

Ad alanı, mantıksal olarak ilişkili bildirimleri ortak bir ad altında gruplandırmanın bir yoludur.

Ad alanı örneği:

// @author Subbotin B.P..h" ilk ad alanı ( int a; float b; ) ad alanı ikinci ( int a; float b; ) int _tmain(int argc, _TCHAR* argv) ( birinci::a = 1; ikinci:: a = 2; birinci::b = 1,23; ikinci::b = 4,56; printf("\nilk::a = %d\n", birinci::a", ikinci::a); printf ("\nbirinci::b = %.2f\n", birinci::b); printf("\nikinci::b = %.2f\n\n", ikinci::b);

Şunu elde ederiz:

Örnekte iki ad alanı oluşturulmuştur: birinci ve ikinci. Her iki alan da aynı değişkenleri içerir. Ancak, tam olarak, örneğin a değişkeninin, başka bir ad alanındaki bir değişkenle karıştırılmasına izin vermeyen ilk önce alana ait olması gerçeğidir. Bu, ad çakışmalarını önler.

ilk ad alanında bildirilen int değişkeninin kullanıldığı anlamına gelir. Bu bir kullanım bildirimi örneğidir. :: operatörüne kapsam belirleme operatörü denir.

Ad alanları, ad alanı anahtar sözcüğü kullanılarak oluşturulur:

Önce ad alanı ( int a; float b; )

Bir ad alanındaki tüm adları kullanmak için, kullanma ad alanı yönergesini kullanabilirsiniz. Ad alanı std'sini kullanma örneği:

ad alanı std'sini kullanma;<<"\n using namespace std \n"<

int _tmain(int argc, _TCHAR* argv) ( cout

std ad alanını kullanmak, std ad alanındaki adları kullanmanıza olanak tanır. std, C++ standart kütüphanesinin adıdır.

Son örnekte ad alanı std'sini kullanarak ad alanı bağlantı dizesini kaldırırsak, o zaman ad alanı adını açıkça belirtmemiz gerekecektir: // @author Subbotin B.P..h" #include<<"\n using namespace std \n"<

int _tmain(int argc, _TCHAR* argv) ( std::cout

Ad alanı kapsamı tanımlar. Örnekler açıkça ad alanlarını tanımladı. İşte diğer ad alanı örnekleri. Bir işlevin kapsamı aynı zamanda bir ad alanıdır. Global değişkenlerin kapsamı aynı zamanda bir ad alanıdır. Sınıf aynı zamanda bir ad alanıdır.

İsimsiz bir isim alanı oluşturmak mümkündür. Örnek:

// @author Subbotin B.P..h" ad alanı ( int a; int b; ) int _tmain(int argc, _TCHAR* argv) ( a = 5; b = 8; printf("\n a = %d\n", a printf("\n b = %d\n\n", b);

Bu, kullanma ad alanı yönergesinin kullanımını ima eder. Olası ad çakışmalarını önlemek için bu tür ad alanlarına ihtiyaç vardır.

// @author Subbotin B.P..h" yeraltı ad alanı ( int a; int b; ) ad alanı ug = yeraltı; int _tmain(int argc, _TCHAR* argv) ( ug::a = 5; ug::b = 8; printf ("\n ug::a = %d\n", ug::a); printf("\n ug::b = %d\n\n", ug::b);

ad alanı ug = yer altı;

yeraltı ad alanı için ug takma adını tanıtır. Daha sonra takma adla çalışıyoruz.

Ad alanındaki adların yalnızca bir kısmını kullanmayı düşünüyorsanız bu bölümü yeni bir ad alanına seçip kullanabilirsiniz. Örnek:

// @author Subbotin B.P..h" yer altı ad alanı ( int a; int b; int c; float d; double e; ) ad alanı ug ( underground::a; underground::b; kullanarak) int _tmain(int argc, _TCHAR* argv) ( ug::a = 5; ug::b = 8; printf("\n ug::a = %d\n", ug::a); printf("\n ug::b = %d\n\n", ug::b); return 0; )

Burada yeraltı ad alanının beş değişkeninden yalnızca ikisini kullandığımızı varsayıyoruz. İki adet kullanım bildirimi içeren yeni bir ad alanı ug'si oluşturuyoruz. Daha sonra ug ad alanıyla çalışıyoruz.

Ad alanı değiştirilebilir; buna yeni reklamlar ekleyin. Örnek:

// @author Subbotin B.P..h" yeraltı ad alanı ( int a; int b; ) yeraltı ad alanı ( float c; ) int _tmain(int argc, _TCHAR* argv) ( yeraltı::a = 5; yeraltı::b = 8 ; yer altı::c = 1.2; printf("\n yer altı::a = %d\n", yer altı::a); printf("\n yer altı::b = %d\n", yer altı::b); ); printf("\n yer altı::c = %.1f\n\n", yer altı::c);

Şunu elde ederiz:

Ad alanları iç içe yerleştirilebilir Örnek:

// @author Subbotin B.P..h" ad alanı üst ( int a; int b; ad alanı iç ( float c; ) ) int _tmain(int argc, _TCHAR* argv) ( Upper::a = 5; Upper::b = 8 ; üst::iç::c = 1,2; printf("\n üst::a = %d\n", üst::a); printf("\n üst::b = %d\n", üst ::b); printf("\n üst::iç::c = %.1f\n\n", üst::iç::c);

Şunu elde ederiz:

Örnekte, üst ad alanı iç ad alanını içerir. Dahili ad alanı alanına nasıl erişildiğine dikkat edin:

üst::iç::c = 1,2;

Şimdi küresel ad alanına bakalım. Burada:: operatörü, alan adı belirtilmeden kullanılır. Global ad alanı, karşılık gelen kullanım direktifleri de dahil olmak üzere global bildirimleri içerir. Genel ad alanı örneği:

Son örnekte ad alanı std'sini kullanarak ad alanı bağlantı dizesini kaldırırsak, o zaman ad alanı adını açıkça belirtmemiz gerekecektir: ad alanı std'sini kullanma;<<"\n nAnotherVar = "<

Bildirimleri kullanma ile yönergeleri kullanma arasındaki farkı görmek önemlidir.
Bir kullanma bildirimi, bir değişkeni yerel kapsamda kullanılabilir hale getirir; yerel ad bildirimi oluşur. Yerel bir değişkeni bildirmenin iki yolu vardır: normal veya kullanma bildirimi kullanmak.

Bir kullanma yönergesi belirli bir ad alanındaki tüm adları kullanılabilir hale getirir, ancak bunları yerel olarak bildirmez.

Bir kullanma bildirimi, bir kullanma yönergesine göre önceliklidir.

Bir örneğe bakalım:

// @author Subbotin B.P..h" ad alanı sbp ( int a; int b; int c; ) int a; int _tmain(int argc, _TCHAR* argv) ( int a; ad alanını kullanma sbp; a = 1; sbp:: a = 2; ::a = 3; printf("\n a = %d\n", a); printf("\n sbp::a = %d\n", sbp::a); :a = %d\n\n", ::a); return 0; )

Şunu elde ederiz:

ad alanı sbp'yi kullanma;

Bu, sbp ad alanındaki tüm adları kullanılabilir hale getiren bir kullanma yönergesidir.

Bu yerel değişken a ile çalışıyor. a değişkenine sbp alanından değer atamak için açıkça sbp'yi işaret etmeniz gerekir:

Aynı durum global değişken a için de geçerlidir.

Yerel değişken a, aynı isimdeki global değişkenleri kapatır.

Şimdi kullanma bildirimine bir örnek:

// @author Subbotin B.P..h" ad alanı sbp ( int a; int b; int c; ) int a; int _tmain(int argc, _TCHAR* argv) ( int a; a = 1; kullanma sbp::b; b = 2; ::a = 3; printf("\n a = %d\n", a); printf("\n sbp::b = %d\n", sbp::b); = %d\n\n", ::a); return 0; )

Şunu elde ederiz:

Bu bir kullanım beyanıdır. Burada b değişkeni yerel olarak sbp ad alanından bildirilir. Bu duyurunun ardından aşağıdaki işlemleri gerçekleştirebilirsiniz:

ancak bir için kullanım beyanı

örnekte yerel değişken a zaten tanımlı olduğundan bizi hataya sürükler.

Yardımcı olacaktır.
PHP'de ad alanı desteğine giden yol zorlu olmuştur. Ama neyse ki PHP 5.3'te dile eklendi ve o zamandan bu yana PHP kodunun yapısı önemli ölçüde gelişti. Peki bunları tam olarak nasıl kullanmalıyız?

Ad alanları nedir?

"Ad alanı adını bir dize olarak saklarken ters eğik çizgiyi unutmayın!"

Ad alanını içine her şeyi koyabileceğiniz bir kutu olarak düşünün: kalem, cetvel, kağıt parçası vb. Bunlar senin eşyaların. Senin kutunun hemen altında başkasının kutusu var ve sahibi de aynı şeyleri onun içinde saklıyor. Birbirinizin eşyalarını kullanmaktan kaçınmak için kutuları, neyin kime ait olduğu belli olacak şekilde etiketlemeye karar veriyorsunuz.

Daha önce geliştiriciler, kodları ayırmak için sınıflarında, işlevlerinde ve sabitlerinde alt çizgi öneklerini kullanmak zorundaydı. Bu, herkesin eşyalarını etiketleyip büyük bir kutuda saklamasına eşdeğerdir. Elbette bu en azından bir tür organizasyon ama çok etkisiz.

Ad alanları, yardım edin! Aynı işlevi, sınıfı, arayüzü bildirebilir ve sabiti ayrı ad alanlarında ölümcül hatalar almadan tanımlayabilirsiniz. Özünde ad alanları, normal PHP kodunu içeren hiyerarşik olarak etiketlenmiş kod bloklarından başka bir şey değildir.

Onları kullan!

Ad alanlarını dolaylı olarak kullandığınızı anlamanız önemlidir; PHP 5.3'ten itibaren, kullanıcı tanımlı ad alanlarında henüz bildirilmemiş olan tüm tanımlar, genel ad alanı kapsamına girmektedir.

Global ad alanı aynı zamanda PHP'nin mysqli_connect() ve Exception sınıfı gibi tüm dahili tanımlarını da saklar. Global ad alanının benzersiz bir tanımlayıcı adı olmadığından, buna çoğunlukla genel ad alanı denir.

Ad alanı kullanmanın isteğe bağlı olduğunu lütfen unutmayın.
PHP betiğiniz onlar olmadan da gayet iyi çalışacak ve bu davranış çok yakında değişmeyecek.

Ad Alanı Tanımı

Ad alanını içeren dosya, diğer kodlardan önce, kendi bildirimini içermelidir. Bir ad alanından önce bildirilebilecek tek şey, ayrılmış sözcük bildirimidir; deklarasyon ifadesi, dosya kodlamasını belirtmek için bir ad alanı bildiriminden önce görünebilir.

Ad alanları, ayrılmış sözcük ad alanı kullanılarak bildirilir. Ad alanları PHP'deki diğer tanımlayıcılarla aynı kurallara uyar. Yani ad alanı bir harf veya alt çizgiyle başlayıp ardından istediğiniz sayıda harf, rakam veya alt çizgi gelebilir.

Bir kod bloğunu global bir alana tanımlamak istiyorsanız, ad eklemeden ad alanı anahtar sözcüğünü kullanabilirsiniz.

Bir dosyada birden fazla ad alanı kullanabilirsiniz.

Aynı ad alanını birkaç farklı dosya için de kullanabilirsiniz; dosya bağlantı işlemi bunları otomatik olarak birleştirecektir. Tıpkı sınıflarda olduğu gibi, ad alanı tanımlarının sayısını tek bir dosyayla sınırlamak iyi bir kodlama uygulamasıdır.

Ad alanları tutarsız tanımlardan kaçınmak ve program koduna daha fazla esneklik ve organizasyon kazandırmak için kullanılır.

Kıvrımlı parantezlerin tamamen isteğe bağlı olduğunu lütfen unutmayın. Aslında, her dosya için bir ad alanı kuralını kullanmak ve küme parantezlerini atlamak kodunuzu daha temiz hale getirir; iç içe geçmiş koda girinti koymaya gerek yoktur.

Alt ad alanları

Ad alanları, tıpkı bilgisayardaki dosya sistemindeki dizinler gibi belirli bir hiyerarşiyi takip edebilir. Alt ad alanları bir projenin yapısını düzenlemek için son derece faydalıdır. Örneğin, projeniz veritabanı erişimi gerektiriyorsa, veritabanı istisna işleyicisini ve bağlantı işleyicisi kodunu Veritabanı ad alanı alt ad alanına yerleştirebilirsiniz.

Esneklik açısından iç içe geçmiş ad alanlarını alt dizinlerde depolamak akıllıca olacaktır. Bu, projenin yapılandırılmasına yardımcı olur ve PSR-4 standardını izleyen otomatik yükleyiciler için kullanımı çok daha kolay hale getirir.

PHP, ad alanı ayırıcısı olarak ters eğik çizgiyi kullanır.

İlginç gerçek: RFC'de hangi ad alanı ayırıcısının kullanılacağına karar vermek için bir ifade kullanma seçeneği dikkate alındı.

// projem/veritabanı/bağlantı.phpİstediğiniz kadar iç içe ad alanı kullanabilirsiniz.

İç içe geçmiş kod bloklarıyla alt ad alanının tanımlanması desteklenmez. Aşağıdaki örnek önemli bir hata döndürecektir: "Ad alanı bildirimleri iç içe olamaz."

Bir ad alanından kod çağırma

Bir nesnenin yeni bir örneğini oluşturmak, bir işlevi çağırmak veya farklı ad alanlarındaki sabitleri kullanmak istiyorsanız ters eğik çizgi kullanırsınız. Üç tür ad alanı adı tanımı vardır:
  • Niteliksiz ad
  • Nitelikli ad
  • Tam nitelikli isim

Eksik ad

Bu bir sınıfın, fonksiyonun veya sabitin adıdır ve herhangi bir ad alanına referans içermez. Ad alanlarıyla yeni çalışmaya başlayanlar için bu ortak bir bakış açısıdır.

Ad Soyad

Alt ad alanı hiyerarşisine bu şekilde erişiriz; ters eğik çizgi ile ayrılmıştır.

Aşağıdaki örnek önemli bir hata döndürecektir: "Önemli hata: Sınıf "MyProject\Database\MyProject\FileAccess\Input" bulunamadı" çünkü MyProject\FileAccess\Input, içinde bulunduğunuz ad alanıyla alakalı değil.

Mutlak ad

Tam ve kısmi adlar, o anda içinde bulunduğunuz ad alanına göre kullanılır. Yalnızca bu düzeydeki erişimi tanımlamak veya ad alanı hiyerarşisinin derinliklerine inmek için kullanılabilirler.

Hiyerarşinin daha yüksek seviyesindeki bir işleve, sınıfa veya sabite erişmek istiyorsanız, o zaman tam adı kullanmanız gerekir; göreceli değil, mutlak bir yol. Çağrı ters eğik çizgiyle başlamalıdır. Bu, PHP'ye bu çağrının geçerli konumunuza göre erişim yerine küresel alandan yapılması gerektiğini bilmesini sağlar.

PHP'nin dahili işlevleri için tam adı kullanmak zorunda değiliz. İşlevler ve sabitler için nitelenmemiş adlar, geçerli ad alanında tanımlanmadıkları takdirde, genel ad alanında tanımlanacaktır.

Bunu bilerek, artık orijinal işlevi (veya sabiti) çağırırken dahili PHP işlevlerini aşırı yükleyebiliriz.

"; }

Dinamik aramalar

PHP dinamik bir programlama dilidir; böylece bir ad alanından kod çağırmak için bu işlevi kullanabilirsiniz. Bu aslında dinamik bir sınıf adı kullanmak veya adını saklamak için bir değişken kullanarak dinamik bir dosyaya bağlanmakla aynıdır. PHP ad ayırıcısı dizelerde aynı meta karakterleri kullanır. Ad alanı adını bir dize olarak saklarken ters eğik çizgiyi unutmayın!

ad alanı anahtar sözcüğü

Ad alanı anahtar sözcüğü yalnızca bir ad alanını tanımlamak için kullanılmaz, aynı zamanda işlevsel olarak sınıflar için self anahtar sözcüğüne benzer şekilde geçerli ad alanına çağrı yapmak için de kullanılabilir.

__NAMESPACE__ sabiti

Nasıl ki self anahtar sözcüğü geçerli sınıfın adını tanımlamak için kullanılamıyorsa, namespace anahtar sözcüğü de geçerli ad alanı için kullanılamaz. Bu nedenle __NAMESPACE__ sabitini kullanıyoruz

Bu sabit, bir ad alanını öğrenmeye başladığınızda oldukça faydalıdır; aynı zamanda hata ayıklama için de çok faydalıdır. Bir dize olduğundan yukarıda tartışılan dinamik kod çağrılarıyla birlikte kullanılabilir.

Bir takma adı içe aktarın veya oluşturun

ad alanlarında kullanılması zorunlu değildir

PHP'deki ad alanlarının önemli bir özelliği, harici bir mutlak isme şu şekilde gönderme yeteneğidir: takma ad, veya ithalat.

İçe aktarmalar ad alanlarının çok kullanışlı ve temel bir yönüdür. Bu size, kitaplıklar gibi harici paketleri ad çakışmaları konusunda endişelenmeden kullanma olanağı sağlar. İçe aktarma, use anahtar sözcüğü kullanılarak yapılır. İsterseniz as anahtar sözcüğünü kullanarak özel bir takma ad belirleyebilirsiniz.

Olarak kullan

Nasıl kullanılır?

Mutlak bir ad, daha kısa ve niteliksiz bir adla ilişkilendirilebilir, böylece onu her kullanmak istediğinizde mutlak adını yazmanıza gerek kalmaz. Takma ad oluşturma veya içe aktarma, üst ad alanında veya genel ad alanında gerçekleşmelidir. Bunu bir yöntem veya işlev içinde yapmaya çalışmak geçersiz sözdizimidir.

Bir alternatif, farklı bir ada sahip bir takma ad atamaktır.

Ayrıca Exception gibi global sınıfları da içe aktarabilirsiniz. İçe aktarırken mutlak adını yazmanıza gerek yoktur.

Bir ad alanındaki adlar için başta ters eğik çizginin gerekli olmadığını ve içe aktarılan adların mutlak olması ve geçerli ad alanına göre ayrıştırılmaması gerektiğinden orada bulunması önerilmez.

Dinamik ad alanı çağrısı desteği olmasına rağmen dinamik içe aktarma desteklenmez.

Çözüm

Ad alanları, tanım çakışmasını önlemek ve program koduna daha fazla esneklik ve organizasyon kazandırmak için kullanılır. Ad alanlarını kullanmanız gerekmediğini unutmayın; Bu özellik nesne yönelimli bir yaklaşımla birlikte kullanılır. Umarım (gelecekteki) PHP projenizi bir ad alanı kullanarak bir sonraki seviyeye taşımayı düşünürsünüz.

Dipnot: Bu bölümde ad alanlarının kullanımı ve bildirimi açıklanmaktadır. RDF, XML-Veri, Belge İçeriği Açıklaması (DCD), Nesneye Dayalı XML için Şema (SOX), Belge Tanımlama İşaretleme Dili (DDML, eski adıyla XSchema)'nin temel özellikleri verilmiştir.

Daha önce DTD tanımlarının bazı dezavantajlarını açıklamıştık, bunlar birbiriyle bağlantılıdır:

  1. bu tanımların sözdizimi XML'in sözdiziminden farklıdır (özellikle genişletilmiş Backus-Naur formu, Genişletilmiş Backus Naur Formu);
  2. bu tanımlar yeterince açıklayıcı değildir;
  3. Her kullanıcı kendi etiketlerini oluşturabildiğinden, insanların farklı şeylere atıfta bulunmak için aynı öğe adlarını kullanması muhtemeldir. Unsurların anlamları aynı olsa bile olası içerikleri tanıma göre farklılık gösterebilir. Dolayısıyla, özellikle aynı belgede farklı türde sözcükleri karıştırıyorsak, bir öğenin belirli kullanımlarını tanımlamanın bir yoluna ihtiyacımız var. Sorunu çözmek için W3C, XML Ad Alanları adı verilen ve ad alanındaki bir öğenin bağlamını tanımlamanıza olanak tanıyan bir spesifikasyon yayımladı.
  4. Farklı DTD tanımlarına karşılık gelen farklı kaynaklardan gelen XML belgelerini birleştirmenin gerekli olduğu durumlar vardır. Örneğin, bu durum büyük miktarda bilgiyi açıklarken, bireysel DTD'lerin tüm hacmi kapsaması için yeterli olmaması veya anlaşılmasının zor olması durumunda ortaya çıkar. Ayrıca e-ticaret sistemlerinde de iş ortağınızın verilerini sizinkilerle birleştirmeye çalışırken ortaya çıkar. Bazı bilgileri standart formatta değiş tokuş etmek için ayarlarınızı mevcut bir DTD'ye eklemeniz gerektiğinde de bir durum ortaya çıkabilir. Ne yazık ki XML önerisi, birden çok DTD'yi, bunları değiştirmeden veya yeni bir DTD oluşturmadan (harici referanslar kullanarak) tek bir belgede birleştirmenin bir yolunu sağlamaz.

Bu bölümde aşağıdaki iki kavram ele alınmaktadır: ad alanı ve XML şemaları. Ad alanları, XML geliştiricilerinin karmaşık bir sorunu küçük parçalara ayırmasına ve sorunu tam olarak açıklamak için birden fazla kelime dağarcığını tek bir belgede birleştirmesine olanak tanır. Sözlük tasarımcıları şemaları kullanarak DTD'lerde mümkün olandan daha kesin tanımlar oluşturur ve bunu XML sözdizimini kullanarak yapar.

Bu iki araç, XML kullanırken ortaya çıkan karmaşık sorunların çözülmesine yardımcı olur. Ad alanları ve şemalar, XML tasarımcılarının ve programcılarının şunları yapmasına olanak tanır:

  • Karmaşık sorunları çözmek için kelime dağarcığını daha iyi organize edin;
  • Kaydetmek güçlü yazma XML'e ve XML'den dönüştürmeler sırasındaki veriler;
  • Kelime dağarcığını DTD ile mümkün olandan daha kesin ve esnek bir şekilde tanımlayın;
  • Ayrıştırıcıyı karmaşıklaştırmadan tanımlarına erişerek XML'deki sözlük kurallarını okuyun.

Sözlükleri karıştırma

Bir sözlük tasarlarken küresel bir sorunu birkaç bileşen parçasına ayırmak mantıklı olabilir. Bu, büyük bir sorunu birden fazla kelime dağarcığına ayırmanın yollarını gerektirir. Ancak çözülmesi gereken asıl sorun, ayrı DTD'leri tek bir belgenin gövdesinde birleştirmektir. Bu sorun, örneğin, büyük olasılıkla zaten bir dizi DTD tanımının bulunduğu ve bunların kullanımının işi büyük ölçüde kolaylaştırabileceği bir şirket için çalışıyorsanız da ortaya çıkabilir, çünkü sorunu başkalarının anladığı gibi tanımlıyorlar. DTD tanımlarını yeniden kullanmak da sıklıkla faydalıdır; Daha önce oluşturulmuş DTD tanımlarından ortak yapıların kullanılması. Harici bir iş ortağının yazılımıyla iletişim kurması gereken bir uygulama geliştiriyorsanız, mevcut kavramları yeniden kullanmaktan başka çok az seçeneğiniz vardır. DTD'nin mevcut tanımları anlaşılabilmesi için konuşulması gereken ortak bir dil oluşturmaktadır. Bir kavram zaten mevcutsa, o kavramın terimleriyle anlaşılmaya çalışılmalıdır.

Diğer geliştiricilerin DTD'lerinden sizin için yararlı olan tanımları kullandığınızda veya karmaşık bir sorunu açıklayan bir belge oluşturmak için bölümlere ayrılmış DTD'leri birleştirdiğinizde, belgeleriniz aynı adlara sahip öğeler kullanıyorsa, aşağıdaki sorunlarla karşılaşma riskiyle karşı karşıya kalırsınız: belirsizlik ve isim çakışmaları.

Birden çok DTD'den ad örnekleri kullanıldığında sorun daha da kötüleşir. DTD tanımının hangi unsuru ifade ettiğini bilemediğimiz bu durumda, belgelerin iyi biçimlendirilmesi sorununa belirsizlik denir. Ayrıca, belgedeki adlar gerektiriyorsa geçerlilik kontrolleri, uygulamamızı çok kafa karıştırıcı hale getirebiliriz. Bu soruna ad çakışması denir.

Ad alanları

Ad alanları kullanıcıya çok önemli iki şekilde yardımcı olabilir. Onların yardımıyla şunları yapabilirsiniz:

  • programın bir öğenin veya niteliğin hangi kaynaktan alındığını ayırt edeceğine dair güveni kaybetmeden iki veya daha fazla kaynaktan gelen belgeleri birleştirin;
  • Mümkünse, kullanıcı aracısının belge türü tanımı (DTD) veya öğe ve niteliklerin diğer açıklamaları gibi daha fazla malzemeye erişmesine izin verin.

Ad alanı, XML belgelerinde öğelerin veya niteliklerin adları olarak kullanılabilecek belirli değerlerin veya özelliklerin bir koleksiyonudur. XML'deki ad alanları, Tekdüzen Kaynak Tanımlayıcısı (URI) tarafından tanımlanır (sunucunuzdaki DTD adresini URI olarak kullanabilirsiniz). Her ad alanının benzersiz olmasını sağlar.

Dolayısıyla, farklı kaynaklardan gelen öğeleri birleştiren bir belgede ad alanlarını etkili bir şekilde kullanmak için şunları tanımlamamız gerekir:

  • Öğenin kullanımını açıklayan bir URI'ye başvuru.
  • Öğemizin hangi ad alanından geldiğini anlamamızı sağlayan bir takma ad. Bu takma ad, bir öğe öneki biçimindedir (örneğin, belirsiz bir Kitap öğesinin takma adı katalog ise, bu durumda öğe çağrılacaktır) ).

Ad Alanlarını Kullanma ve Bildirme

Ad Alanı Bildirimi

Farklı işaretleme dillerinde - XML ​​uygulamalarında - aynı etiket adları ve nitelikleri bulunabildiğinden, tamamen farklı anlamlara sahip olduğundan, bunları bir şekilde ayırt edebilmek gerekir. Bunu yapmak için, etiketlerin ve niteliklerin adlarına, adından iki nokta üst üste ile ayrılan kısa bir önek verilir. Ad öneki, ad alanını tanımlayan bir tanımlayıcıyla ilişkilendirilir. Önekleri aynı tanımlayıcıyla ilişkilendirilen tüm etiket ve nitelik adları, adların benzersiz olması gereken tek bir ad alanı oluşturur.

Herkesin bir ad alanı bildirimini gördüğümüzde tanıyabilmesini istediğimizden, ona özel bir sözcük ayırdık. Ad alanları önerisine göre sözcük xmlns'dir. Özniteliğin değeri, kullanılacak ad alanını belirten bir URI'dir. Bu genellikle DTD tanımı URL'sidir, ancak her zaman bu şekilde olması gerekmez. Ad alanı öneki ve tanımlayıcı xmlns özniteliği tarafından aşağıdaki şekilde tanımlanır:

Gördüğünüz gibi ntb öneki yeni tanımlandı ancak ntb: notebook adında zaten kullanılabiliyor. Gelecekte, http://some.firm.com/2003/ntbml ad alanına atamak istediğimiz etiketlerin ve niteliklerin adlarına ntb ön eki eklenecektir, örneğin:

Gorelovo

Ayrıca bir etikette birden fazla ad alanı bulunabilir. Aşağıda birden çok ad alanının karıştırılmasına ilişkin bir örnek verilmiştir:

Book öğesi, katalog ad alanından gelir ve ISBN özelliği, order öğesinden gelir.

Örneğin bir önekle birlikte ad

genişletilmiş, nitelikli veya nitelikli bir ad (OName. Nitelikli Ad) olarak adlandırılır. İsmin iki nokta üst üsteden sonra yazılan kısmına ismin mahalli kısmı denir.

Web kaynağı adlarının isimlendirilmesi kafa karıştırıcı olabilir. Tekdüzen Kaynak Bulucu ( Tekdüzen Kaynak Bulucu, URL) erişim protokolü ve ağ konumu açısından bir kaynağı belirtir. Tekdüzen Kaynak Tanımlayıcı ( Tekdüzen Kaynak Tanımlayıcı, URI) bazı kaynaklar için benzersiz bir addır. Bir URI'ye, bir ad alanını tanımlayan benzersiz bir karakter dizisi olarak bakın.

SGML ve XML kurallarına göre, adlarda iki nokta üst üste sıradan bir karakter olarak kullanılabilir, bu nedenle öneki olan bir ad yalnızca bir numaradır; ad alanını "bilmeyen", belgeyi ayrıştıran, ele alan herhangi bir program; Nitelikli isim sıradan bir isimdir. Özellikle şu şekildedir: belge türü bildirimi(Belge Türü Bildirimi) ad önekleri atlanamaz.

Xmlns niteliği yalnızca kök öğede değil, herhangi bir XML öğesinde görünebilir. Tanımladığı önek, xmlns niteliğinin yazıldığı öğede ve içine yuvalanan tüm öğelerde kullanılabilir. Ayrıca bir elemanda birden fazla isim alanı tanımlanabilir.

Yuvalanmış öğelerde, önek farklı bir tanımlayıcıyla ilişkilendirilerek ad alanı geçersiz kılınabilir.

Ad alanı kullanan bir belgede önek olmadan bir etiket adının görünmesi, adın varsayılan ad alanına ait olduğu anlamına gelir.

İyi tasarlanmış bir belge, tüm öğeleri için ad alanlarını kullanmalıdır.

Her durumda xml karakterleriyle başlayan önekler XML dilinin kendisine ayrılmıştır. Xmlns öneki, başka bir tanımlı öneki kendi ad alanı tanımlayıcısıyla ilişkilendirmek için kullanılır. Xmlns önekinin tanımlanmasına gerek yoktur; "XML'deki Ad Alanları" önerisiyle tanıtılır ve burada ad alanı tanımlayıcısıyla ilişkilendirilir. http://www.w3.ori/2000 /xmlns/.

Başka bir önek olan xml, aynı öneride tanımlayıcıyla ilişkilendirilir http://www.w3.org/XML/1998/namespace. Ayrıca XML belgesinde tanımlanmasına da gerek yoktur. Bu tanımlayıcılarla başka hiçbir önek ilişkilendirilemez. Boşluk karakterlerini olduğu gibi tutmaya yönelik talimatları koruyun. Bu, program kodları gibi bazı metinler için önemlidir. Varsayılan değer, boşlukları işleyicinin takdirine bırakır.

Kapsam

Ad alanı bildirimlerinin, tıpkı programlama dillerindeki değişken bildirimleri gibi bir kapsamı vardır. Bu önemlidir çünkü ad alanları her zaman XML belgesinin başında bildirilmez; bazen sonraki bölümlerde bildirilir. Bir ad alanı bildirimi, burada açıkça tanımlanmamış olsa bile, içinde göründüğü öğenin yanı sıra o öğenin alt öğelerine de uygulanır. Bir ad, yalnızca bildiriminin kapsamı dahilinde kullanıldığında bir ad alanına gönderme yapabilir.

Ancak, aksi takdirde diğer ad alanlarını devralacak öğeler üzerinde ad alanı kapsamlarını da karıştırmamız gerekecektir. Bu bağlamda kapsam bildirmenin iki yolu tanımlanmıştır: varsayılan ve nitelikli.

Varsayılan Kapsam

Tahmin edebileceğiniz gibi, bir belgedeki her adın önüne eklemek zorunda kalmak, hızla sıkıcı hale gelir. Aslında ad kapsamı kavramını tanıtarak çok sayıda öneki belgemize karıştırabiliriz. Varsayılan bir ad alanı tanımlarsak, bildirimi kapsamındaki tüm niteliksiz adlara sahip olduğu varsayılır. Bu nedenle, kök öğede bildirilen varsayılan ad alanı, belgenin tamamı için varsayılan olarak kabul edilir ve yalnızca belge içinde bildirilen daha spesifik bir ad alanı tarafından geçersiz kılınabilir.

Bir ad alanını bir kapsamın varsayılan ad alanı yapmak için önek bildirimini atlamanız yeterlidir.

Bir önek bildirilir ve daha sonra bir adla birlikte kullanılırsa, ad alanının açıkça kurulduğu söylenir. Bir ad alanına nitelenmemiş bir ad atamak için, nitelenmemiş adı içeren (ön ek olmadan) bir varsayılan alan bildirmeniz gerekir.

Nitelikli Kapsam

Ad alanlarınızı açıkça ayırabiliyorsanız yukarıdaki yöntem işe yarar. Ancak bazen bir belgeye harici ad alanlarından tek tek adların dahil edilmesi gerekebilir. Kapsamın tamamı için ad alanlarını bildirmek yerine, nitelenmiş adlar kullanabilirsiniz. İhtiyacınız olan ad alanlarını belgenin başında belirtin ve ardından bunları kullanım noktasında nitelendirin.



 


Okumak:



Lineage II - Interlude: Kaotik Taht başlamıyor mu?

Lineage II - Interlude: Kaotik Taht başlamıyor mu?

Lineage 2 hayranları, kurulumdan sonra oyun başlamadığında hoş olmayan bir durumla karşı karşıya kalıyor. Veya yükleme işlemi sırasında hatalar ortaya çıkıyor....

Excel Şifre Kurtarma

Excel Şifre Kurtarma

Microsoft Office belgeleri genellikle başkalarının bilmesine gerek olmayan bilgiler içerir. Böylece senden başka kimse başaramaz...

Android Wear akıllı saatlerine yeni bir saat yüzü nasıl eklenir?

Android Wear akıllı saatlerine yeni bir saat yüzü nasıl eklenir?

Tek uygulamada 30.000'den fazla dijital ve analog saat yüzü! Görünümü özelleştirmek için geniş olanaklar, çeşitli etkileşimli işlevler....

En karlı tarife planı Hayat

En karlı tarife planı Hayat

Artık mobil operatör Life, Ukrayna'nın en popüler operatörlerinden biridir. İlgi çeken çok sayıda ilginç teklif sunuyor...

besleme resmi RSS