C# İsim uzayları(namespace) Programlama dillerinde, programcıların işlerini kolaylaştırmak için bir takım hazır kütüphaneler mevcuttur, bu kütüphanelerden bazıları standart olmakla birlikte bazıları programcılar tarafından sonradan geliştirilmiş ve kullanıcıların hizmetine sunulmuştur.
C# dili ile gelen hazır bir takım sınıf kütüphaneleri bulunmamaktadır, kısacası standart bir C# kütüphanesi mevcut değildir. Bu demek değildir C# ile işimiz daha zor olacak, aslında daha kolay,
.NET Framework dediğimiz altyapının bize veya diğer programlama dillerini kullanan programcılara sunduğu bir takım temel türler ve sınıflar mevcuttur. Bütün bu sınıfları ve türleri binary düzeyde iyi oırganize edebilmek için .NET, namespace kavramını sıklıkla kullanmaktadır.
NET teki sınıf kütüphaneleri bir dilden bağımsız bir yapıdadır .NET teki sınıf kütüphaneleri bir dilden bağımsız bir yapıdadır. MFC gibi sadece C++ için yada başka bir dil için geliştirilmemiştir. Çok normal olarak Visual Basic.NET kullanıcısı ile C# kullanıcısı aynı kütüphaneden faydalanırlar.
Namespace’ler .NET Framework sınıf kütüphanesindeki veri türlerini ve sınıfları kullanabilmemiz için C# dilinde using anahtar sözcüğü ile birlikte kullanılır ve derleyiciye bildirilir.
Diğer dillerde ise bu isim alanları farklı şekilde derleyiciye bildirilir, ama temelde yapılan iş .NET Framework sınıf kütüphanelerini kullanma hakkı almaktır.
Namespace leri kendi yazdığımız kodların organizasyonu içinde kullanabiliriz. Hem böyle tür isimlerinin karışmasını da önlemiş oluruz, zira bir tür ismi yada sınıf ancak kendi isim alanı içinde görünürlüğe(visibility) sahiptir.
Mesela System isimalanını eklemeden Console sınıfını kullanamayız Mesela System isimalanını eklemeden Console sınıfını kullanamayız. Aynı şekilde kendi yazdığımız sınıfları için de isim alanları tanımlayarak, kaynak kodumuzu istediğimiz bir şekilde organize edebiliriz. .NET Framework sınıf kütüphanesi hiyerarşik bir yapıya sahip olduğu için iç içe isim alanları tanımlanmıştır.
İsim alanlarının kullanımına bir örnek verecek olursak : Diyelim ki 2D (iki boyutlu) grafikleri içeren bir sınıf kütüphanesi geliştiriyoruz, ve bu sınıf kütüphanesi içinde "Nokta" adlı bir sınıfımız var. Bu isim alanını tanımlamak için namespace anahtar sözcüğünün aşağıdaki gibi bir kullanımı vardır.