19. İsim Alanlari (Namespaces)

1. NAMESPACE KAVRAMI
   Namespace classları bir arada tutan bir yapıdır. Classın bir üst katmanı gibi düşünülebilir ve biz classlara namespaceler üzerinden ulaşırız. Kodun başında using kullanarak dahil ettiğimiz System ve diğer using ifadelerinin herbiri bir namespacei koda dahil eder.

using System;   //Herbiri birer namespacedir
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
  class Program
  {
    static void Main(string[] args)
   {

      //System.Console.ReadKey(); de alternatif bir kullanım olmakla beraber çok tercih edilmemektedir.
      Console.ReadKey();  
    }

  }
}

   Örneğin yukarıdaki using System;’ı ele alalım. Using system’ı kullanarak system namespaceini koda dahil ettik ve system namespaceinin classlarına erişilebilirlik sağladık. Eğer ki using System’ı silersek console classı ki bu class system namespaceinin altında yer alır, kullanılamaz hale gelecektir.

Using system;   —> Console classı —> ReadKey() metodu

yapılan olay önce system namespaceine ulaşmak oradan console classına oradan da readkey( ) ,writeline( ) veya readline( ) metoduna ulaşmak.

2. KENDI NAMESPACELERIMIZI YARATMA
   Kendi namespaceimizi oluşturma işlemi oldukça basittir. Aşağıdaki gibi solutionumuz içerisine kendi classımızı oluşturup içerisine yer almasını istediğimiz metotları tanımlarız.

namespace cagatay
{
  class Deneme
  {
    static public int topla(int x, int y)
    {
     int sonuc;
     sonuc = x + y;
     return sonuc; 
    }
  }
 }

    İkinci olarak yapmamız gereken hareket ise bu classı namespacei üzerinden , kullanacağımız classa dahil etmek.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using cagatay;
namespace ConsoleApp3
{
 class Program
 {
   static void Main(string[] args)
   {
      //cagatay namespacesi içerisindeki deneme classının içerisindeki topla metoduna ulaştık.
      int sonuc = Deneme.topla(5,3); 

     Console.Writeline("sonuc {0}",sonuc);

      //System.Console.ReadKey(); de alternatif bir kullanım olmakla beraber çok tercih edilmemektedir.
     Console.ReadKey();
   }
  }
}