İçeriğe geç

Namespace Nedir? #1

Visual Studio projenize verdiğiniz isimle aynı namespace’i otomatik olarak hazır bir şekilde önümüze getirmektedir. Uygulamanızı yazarken hazırladığınız bütün sınıf, struct veya interface’ler varsayılan olarak aynı namespace içinde bulunur. Bir projeye dahil olduğunuzda ya da var olan bir projeyi kendi projenizde kullanacağınızda bilmeniz gereken en önemli şeylerden biri .NET Framework ile gelen class veya interfacelerin hangi namespace altında yer aldığıdır.

C sharp uygulamalarında hazırlanan class’ların ve struct’ların namespace’lere yerleştirilmesinin en önemli nedeni sınıf adı çakışmalarını önlemektir.

.NET Framework ile gelen her şey (class, enum, interface…) namespace’lerde yer almaktadır. Namespaceler ise referans adı verilen DLL dosyalarına konuluyor.

Konunun daha iyi anlaşılması için ve adım adım gidebilmek için Visual Studio yerine VSCODE üzerineden ilerleyeceğim. İlk olarak bir deneme.cs isimli dosya oluşturup kodlarımı ekledim. Daha sonrasında bunu csc aracı ile derledim.

Yukarıda derleme yaparken herhangi bir reference belirtmediğimize dikkat ediniz çünkü son derece basit bir uygulama yazdık. Ancak buna rağmen arkaplanda bazı işlemler gerçekleşti. Eğer using System; kodunu yazmadan ekrana bir yazı yazdırmak istersek System.Console.WriteLine(); denilmesi gerektiğini biliyoruz. System namespace’i System.core.dll’de yer almaktadır. Onun haricinde değişken tanımlarken ve bunlar üzerinde işlemler yaparken aslında System.dll kullanılmaktadır. Deneme.cs içerisinde istersek bir değişkende tanımlayabilirdik. Peki herhangi bir şekilde bir DLL göstermeden yani bir reference belirtmeden kodlarımız nasıl çalışıyor. Bütün derleme aşamalarında olsa da olmasa da System.core.dll ve System.dll dosyaları otomatik olarak projemize dahil edilmektedir. Bunu Visual Studio üzerinden görebiliriz.

Görüldüğü üzere Visual Studio üzerinden boş bir Console Application oluşturduğumuzda bazı DLL dosyaları otomatik olarak projemize gelmektedir. Şimdi bunların hepsini silelim.

Görüldüğü gibi DLL dosyaları silinmesine rağmen programımız hata vermeden çalıştı. Namespace ile ilgili diğer yazılarda görüşmek üzere.

Kategori:C Sharp

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir