ÜYE GİRİŞİ  
Kullanıcı adı :
Parola :
 
  Üye Ol!  
 
 
ANASAYFA HABERLER ASP ASP.NET PHP C/C++ C# JAVA ARAMA İLETİŞİM

ASP.NET
  Expression Web ile Site Yapimi
  Web Server Control Yazmak - 2
  Web Server Control Yazmak - 1
  Sql Cache Dependency
  Web Kontrollerini Etkin Kullanmak
  Xslt Kullanımı
  Bir Web Sayfasının Anatomisi
  Client Script Callback
  Login Kontrollerinin Kullanımı

ASP
  ASP Nesneleri
  29 Soruda ASP
  Matematiksel Uygulamalar
  Select Case Yapısı 2
  Fonksiyon(Function) Kullanımı
  IF-ELSE...
  GET Yöntemi ile İşlemler
  Asp de Tarih ve Saat fonksiyonları
  While-wend döngüsü

C Sharp (C#)
  C#'da klasör işlemleri
  C# ile diziyi tersine çevirme
  Çok Kullanılan Kontroller-1
  C# ile Kronometre Uygulaması
  Overloaded Metotların Gücü
  C# ile XMLQuery Örneği
  Rastgele Kod Üretimi
  Kontroller ile Çalışma
  Düzenli İfadeler Nedir?

DUYURULAR

F# Microsoft dil teknolojisinin en yeni üyesi.Common Lisp-Slime-Emacs tarzında etkileşimli,kıvrak,sonuçların anında görülebildiği ve yüksek performanslı bir betik dil olarak özetleyebiliriz bu yeni dili. devamı >>


Türk Telekom'dan yapılan yazılı açıklamada, Telekomünikasyon Kurumu'nun onayladığı yeni tariflerin, internet servis sağlayıcı şirketlerin maliyetlerini önemli oranlarda düşüreceği aktarıldı. devamı >>


C# İsim uzayları (namespace) Hakkında | Asundinay.Com
C Sharp (C#) İçin Eklenmiş Makale
 Makale Adı  :  C# İsim uzayları (namespace) Hakkında
 Yayın Tarihi :  12.08.2007 14:12:32 Ekleyen :  Kazım Aydın Okunma : 180

 

Bu yazımızda C# dilindeki namespace ler hakkında geniş bir bilgi edineceğiz. Bildiğiniz gibi 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ştirlmiş ve kullanıcların hizmetine sunulmuştur. Mesela MFC ve ATL gibi kütühanelerin kendilerine has amaçları vardır, MFC kütüphanesi ile bir takım hazır C++ sınıflarına ulaşarak temelde zor olan bir takım Windows platformuna özgü işlemleri (forms, dialog box vs.) yapabiliriz. Bu da MFC programcılarına çalışır bir uygulama yapmak için daha az zaman harcatır. Bu tür kütüphaneler Visul Basic te ve Java dilinde de vardır. Fakat bu dillerin aksine 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. Demekki .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 isimalanları farklı şekilde derleyiciye bildirilir, ama temelde yapılan iş .NET Framework sınıf kütüphaneslerini kullanma hakkı almaktır. Aşağıda C#, Visual Basic ve Managed C++ ile yazılmış 3 farklı ama aynı işi yapan 3 program görüyorsunuz. Programları dikkatlice incelediğinizde namespace lerin sadece eklenme biçimi ve namespace lerde ki sınıfların sentaks olarak kullanımı farklı. Bize sunudğu arayüzler ise özel durumlar dışında tamamen aynıdır.

[C#]

using System;

public class C#nedir
{
      public static void Main()
     {
          Console.WriteLine ("Merhaba, beni C# ile yazdılar.")
     }
}

[VB.NET]

Imports System

Public Module C#nedir

      sub Main()

               Console.WriteLine ("Merhaba, beni VB.NET ile yazdılar.")

     End Sub

[Managed C++]

using namespace System;

public static void Main()
{
     Console::WriteLine ("Merhaba, beni managed C++ ile yazdılar.")
}

Yukarıdaki programlarda gördüğünüz gibi .NET platformunu destekleyen bütün diller aynı sınıfı kullanarak ekrana yazı yazdırıyorlar.Bu sınıf System isimalanı içinde bulunan Console sınıfına ait bir fonksiyonla gerçekleştirilmektedir.

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 isimalanı içinde görünürlüğe(visibility) sahiptir. Mesela System isimalanını eklemeden Console sınıfını kullanamayız. Aynı şekilde kendi yazıdğımız sınıfları için de isimalanları 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çeiçe isimalanları tanımlanmıştır.

İsimalanlarının kullanımına bir örnek verecek olursak : Diyelimki 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 isimalanını tanımlamak için namespace anahtar söcüğünün aşağıdaki gibi bir kullanımı vardır.

namespace 2DGraph
{
     public class Nokta
    {
      ......
    }
}

Yukarıdaki Nokta sınıfını kullanabilmek için programımıza using deyimi ile isimalanını eklememiz gerekir.Bu işlem aşağıdaki gibi yapılır.

using 2DGraph;

Nihayet 2DGraph isimli sınıf kütüphanesini oluşturduk ve başkalarının kullanımına sunduk. Bi süre sonra da 3DGraph isimalanı adı altında 3 boyutlu grafik işlemleri yapan yeni bir sınıf kütüphanesi geliştirdik ve te tekrar programcıların hizmetine sunduk. Yine aynı şekilde 3 boyutlu noktayı temsil etmek için Nokta sınıfımız olsun

namespace 3DGraph
{
     public class Nokta
    {
      ......
    }
}


Şimdi 2DGrap ve 3DGraph sınıf kütüphanelerinin herikisini birden kullanmak isteyen bir programcı using ile isimalnlarını ekledilten sonra Nokta türünden bir nesne oluşturmak istediğinde derleyici bunun 2D Nokta mı yoksa 3D Nokta mı olduğunu nerden bilecek. Bunu çözmenin iki yolu vardır. Birincisi veri tipi belirlerken aşağıdaki şekildeki bir kullanım tercih edilir.

Veri türlerinin bu şekilde belirtilmesi pek tercih edilmeyen bir yöntemdir. Çünkü içiçe bir çok isimalanının tanımlandığı durumlarda kaynak kodumuz gereksiz yere isimalanlarını yazmakla uzamaktadır. Bu hem okunabilirliği bozmakta hemde programcıya zaman kaybettirmektedir.

using System;
using 3DGraph;
using 2DGraph;

public class C#nedir
{
      public static void Main()
     {
          3DGraph.Nokta 3dnokta = new 3DGraph.Nokta();
          2DGraph.Nokta 2dnokta = new 2DGraph.Nokta();
     }
}

İkinci bir yöntem ise isimalanlarında bulunan sınıflar için takma isim (alias) kullanmaktır.Bu sayede isimalanlarını bir kez eklediketen sonra o isim alanında bulunan sınıflara doğrudan erişebiliriz. Bir isim alanındaki sınıfa takma ad aşağıdaki şekilde verilir.

using System;
using 3DGraph;
using 2DGraph;

public class C#nedir
{

     using Nokta2D= 2DGraph.Nokta;
     using Nokta3D = 3DGraph.Nokta;


      public static void Main()
     {

          Nokta2D 2dnokta = new Nokta2d();
          Nokta3D 3dnokta = new Nokta3d();
     }
}

Yukarıda mavi yazı ile berlirtilen yerlerde takma isimler tanımlanmıştır. Takma isimler ancak ve ancak tanımlanadıkları blok içinde geçerlidir. Başka bloklarda takma adları kullanmak derleme zamanında hataya yol açar.

Sonuç : İsimalanları component(program parçacığı) yazmanın en önemli parçasıdır. Bir "Merhaba Dünya" programı için isimalanı belitmek sizde takdir edersinizki pek anlam taşımamaktadır. İsimalanları daha çok kodumuzun tekrar kullılabilirliğini artırmak için geliştirilen sınıf kütüphanelerinde kullanılırlar.


 

Kaynak : csharpnedir.com


 

C Sharp (C#) İçin Eklenmiş Tüm Makaleler
C Sharp (C#) İçin En Son Eklenen 5 Makale
 Makale Adı  :  C#'da klasör işlemleri
 Yayın Tarihi :  11.04.2009 08:47:40 Ekleyen :  özen karaçakır Makaleyi Oku  
 Makale Adı  :  C# ile diziyi tersine çevirme
 Yayın Tarihi :  27.11.2008 08:57:42 Ekleyen :  özen karaçakır Makaleyi Oku  
 Makale Adı  :  Çok Kullanılan Kontroller-1
 Yayın Tarihi :  05.11.2007 10:39:39 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  C# ile Kronometre Uygulaması
 Yayın Tarihi :  09.10.2007 11:23:04 Ekleyen :  Zeliha Görmez Makaleyi Oku  
 Makale Adı  :  Overloaded Metotların Gücü
 Yayın Tarihi :  12.08.2007 16:05:03 Ekleyen :  Kazım Aydın Makaleyi Oku  

C/C++
  C ögreniyorum -8-
  C ögreniyorum -7-
  C ögreniyorum -6-
  C ögreniyorum -5-
  C ögreniyorum -4-
  C ögreniyorum -3-
  C ögreniyorum -2-
  C ögreniyorum -1-
  İlk C++ Programımız

JAVA
  Java ile Histogram Eşitleme
  JAVA İçinde Thread Kullanımı
  Serialization İşlemleri 2
  Serialization İşlemleri
  İlk Bakışta JSP
  Servletler ile Web Sayfaları
  Java ile Grafik Çizim
  Java, MySql Bağlantısı
  JBuilder ile Database

PHP
  php dersleri -1-
  php/access ile silme işlemi
  php ile access'e bağlanma - 2
  php ile access'e bağlanma - 1
  Döngü ve Diziler - BÖLÜM 5
  Döngü ve Diziler - BÖLÜM 4
  Döngü ve Diziler - BÖLÜM 3
  Döngü ve Diziler - BÖLÜM 2
  Döngü ve Diziler - BÖLÜM 1

İSTATİSTİKLER
  Toplam ziyaret :  24725
  Toplam üye sayısı :  1081
  Asp makale sayısı :  20
  Asp.Net makale sayısı :  54
  Php makale sayısı :  26
  C/C++ makale sayısı :  51
  C# makale sayısı :  29
  Java makale sayısı :  33
  Toplam makale saıysı :  213
Copyright asundinay® 2007 Her Hakki Saklidir
Tasarim & Programlama asundinay®