<Mayıs>
PSÇPCCP
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
Kayıt Ol

. .Net Framework
. ADO.Net
. ASP.Net, Web Servisleri
. C#, Visual C#
. Delphi.Net
. Diğer
. Mobil.Net
. NetFx
. VB.Net
. Veritabanları
. Visual Studio
. XML

. .Net Framework
. ADO.Net
. ASP.Net, Web Servisleri
. C#, Visual C#
. Delphi.Net
. Diğer
. Mobil.Net
. NetFx
. VB.Net
. Veritabanları
. Visual Studio
. XML

 
 
 
C#'a Giriş I 
Yazar: Özcan Değirmenci  - Yazara ait tüm yazılar
Ders Özeti: .Net vizyonunun yeni dili C#'a giriş yazısı. İlk bilgiler, Merhaba Dünya ve temel bilgiler. Yazarın MaxiASP.Com'daki yazısından alınmıştır. 
Okunma: 8589
MaxiPuan: 2145
Yazı Kategorisi: C#, Visual C#

Ardaşına Tavsiye Et - Yazdırılabilir Biçim



Bu alana reklam verebilirsiniz

C# diline GİRİŞ I
Geçen yazımızda .NET Platformu için en uygun uygulama geliştirme dilinin C# olduğunu yazmıştık. Bu nedenle ben burada ASP.NET derslerinde C# dilini uygulamalarımda temel dil olarak kullanacağım. Sizinde bu konuları çok rahat anlayabilmeniz için öncelikle C# dilinin temel özelliklerine, yapısına ve syntaxına bir göz atmamız gerekmektedir. Ancak C# ı çok iyi anlayabilmeniz için sizinde bu konuda bol miktarda örnek yapmanız ve özellikle de bu konu ile ilgili dökümantasyon temin ederek konuları daha detaylı incelemeniz gerekmektedir. Ben C# diline giriş konusunu iki yazı ile geçmeyi düşünüyorum. Bu nedenle yazılarımızda C# diline çok derinlemesine girmeyeceğiz.
1 . GİRİŞ
C# (okunuşu C Sharp), C ve C++ dillerinden çıkma olup, basit, modern, nesne tabanlı(object orianted) ve çeşit-güvenirlikli(type-safe) bir programlama dilidir. C#, Visual Basic dilinin kolaylığına ve C nin gücüne sahip diyebiliriz. C# progralama dilini kullanarak program yazabilmek için Microsoft Visual Studio.NET'i kullanabilrisiniz. Visual Studio.NET C#'ın yanısıra VB.NET ve Visual C++ programlama dillerini ve bunun yanında VBScript ve JScript script dillerini içerir. Bütün bu diller bir önceki yazımızdada belirttiğimiz NGWS (Next Generation Windows Services ) platformu üzerine yapılandrılmış ve bu platformun gücünü ve kolaylıklarını kullanmaktadırlar. NET yazılım geliştirme Kit'i bize CLS (Comman Language Subset) uyumlu diller (yani .NET dilleri) ve class kütüphanelerini kullanabilme imkanı sunar. Bunun anlamı C# yeni bir dil olmasına rağmen Visual Basic ve Visual C++ 'ın kullandığı zengin class kütüphaneleri kullanabilmesi demektir. Şimdi artık yavaş yavaş bu dilin özelliklerine ve kullanılmasına geçelim. Ancak burada daha önce script dilleri yada asp harici programlama yapmamış arkadaşlara kolay gelsin demek isterim. Şimdi isterseniz her yeni programlama dilini öğrenirken yaptığımı geleneği bozmayalım ve C# ile "Merhaba Dünya" diyelim.
1.1 Merhaba Dünya

C# dilinde "Merhaba Dünya"yı aşağıdaki gibi diyebiliriz.

using System;
class Merhaba
{
     static void Main()
     {
         Console.WriteLine("Merhaba Dünya");
    }
}

Bu kodları yazdıktan sonra bu programımızı merhaba.cs olarak kaydedelim. Kaydedilen bu programı derleyip kullanılabilir koda çevirmek için C# derleyicisinin makinenizde olması gerekir. Daha sonra bu programı csc Merhaba.cs olarak derleyebilirsiniz ve ortaya çıkan ürün Merhaba.exe olacaktır. (MS DOS Promt'ta) Bu exe çalıştığında sonuçta ekrana; Merhaba Dünya yazısı çıkacaktır. Şimdi bu program satırlarını kısaca inceleyelim.

  • using System : C# dili C dillerinden farklı olarak header dosyaları kullanmaz. Bunun yerine namespace'ler kullanır. Bu programımız .NET'in System namespace 'ini kullanmaktadır. Bu namespace Console class'ının Main method'una referansını içermektedir. Namespaceler herhangi bir class kütüphanesinin hiyerarşik yapısını içinde barındırır. using komutu programa bu namespace kullanması gerektiğini anlatır.
  • class Merhaba : Bu komut satırında ise programımız için bir class (sınıf) oluşturuyoruz.
  • static void Main() : Her C# programı için bir giriş noktası(entry point) gerekmektedir. Bu şekilde program nereden çalışması gerektiğini bilecektir. Burada Main fonksiyonu bunu belirtir. Program ilk çalıştığında direk Main fonksiyonunu çalıştıracaktır. Burada static ve void komutlarını daha sonra ne demek olduklarını göreceğiz.
  • Console.WriteLine : Bu komut aslında System.Console.WriteLine komutunun kısalmış halidir. Programımızın başında System namespaceinin programa kullanılacağını belirttiğimiz için burada baştaki System yazılmamıştır. Daha öncede belirttiğimiz gibi C# programlarımız namespaceler kullanır. Her namespace kendi içerisinde class'ları ve her class da kendi içerisinde method'ları barındırır. Yani burada Console bir class ve WriteLine da onun içerisinde bir methoddur. Bu method MS-DOS Promt ta ekrana yazdırma methodudur. Aynı asp deki Response.Write komutu gibi ekrana çıktı verir.

Programımız çalıştığında ilk başta ona System namespace'ini kullanması söylenir. Bu sayede Console classımız programımız tarafından kullanılmaya hazır hale gelir. Daha sonra programımızın giriş noktasından program çalışmaya başlar yani Main fonksiyonundan. Main fonksiyonu içerisinde ise Console classının WriteLine methodu kullanılarak ekrana "Merhaba Dünya" yazısı yazdırılır. Evet gördüğünüz gibi karışık gözükmesine rağmen aslında çok kolay bir işleyiş var. Namespaceler sayesinde .NET 'in sağladığı tüm olanaklara ulaşmak çok kolay. Bunu sadece gerekli_namespace.gerekli_class.gerekli_method olarak ta gösterebiliriz. Ancak sürekli gerekli namespace'in program içerisinde yazılmasından kurtarmak için programın başına using komutu ile o namespace aktarılır.

1.2 Otomatik Hafıza Yönetimi
Bu konu üzerinde fazla durmayarak kısaca anlatıp geçeceğiz. Bu yöntem C#'ın programcılara sunduğu büyük bir imkan olup C# programı bu yöntem aracılığı ile programcının program esnasında oluşturduğu ve daha sonra artık gerek kalmayan verilerin hafızadan silinmesi anlamına gelmektedir. Bu işlem programa hız katmaktadır.
1.3 Çeşitler (Types)

C# kullanıcılara iki farklı veri çeşidi sunmaktadır. Bunlar C# değer çeşitleri(value types)ve referans çeşitleri(reference types). Değer çeşitleri; basit çeşitler(simple types), enum çeşitleri(enum types) ve struct çeşitleri(struct types) dırlar. Reference Type'lar ise class typeları (sınıf çeşitleri), interface typeları, delegate typeları ve array typelarıdır.
Value Typeların ve Reference Typeların arasındaki en büyük fark Value Typelar direk kendi değerlerini içerirken Reference Typelar bir objeye referans ederler. Referance Typelar içerisinde birden fazla değişkenin aynı objeye referans etmesi mümkündür. Bu şekilde Referans Typelarda bir objeye referans eden bir değişken aynı objeye referans eden başka bir değişken değiştirilerek değiştirilebilirken, Value Typelarda bu imkansızdır. Bu biraz karışık gözükse de bunu bir örnekle açıklayalım.

using System;
class Class1 // Yeni bir Class açıyoruz ve adıda Class1
{
public int Deger = 0; // yeni bir integer değişken tanımlıyoruz. Adı : Deger ve değeri = 0
}
class Deneme // Deneme Adlı yeni bir class açıyoruz
{
   static void Main() { // Programımız için bir giriş noktası tanımlıyoruz.
      int value1 = 0; // Yeni bir Value değer yani integer tanımlıyoruz. Adı: value1 ve değeri : 0
      int value2 = value1; // Yeni bir Value değer yani integer tanımlıyoruz. Adı: value2 ve değeri : value1'in değerine eşit
      value2 = 123; // value2 adlı değişkenin değerini 123 olarak atıyoruz.
      Class1 reference1 = new Class1(); //reference1 adlı yeni bir referans obje tanımlıyoruz ve bunun yapısını Class1 den alıyoruz.
      Class1 reference2 = reference1; //reference2 adlı yeni bir referans obje tanımlıyoruz, buda bir Class1 yapısı ve bunun değerinide reference1'in değerine eşitliyoruz.
      referencef2.Deger = 123; //reference2 objesinin içerisindeki Deger değişkenini 123 olarak atıyoruz.
      Console.WriteLine("Valuelar: {0}, {1}", value1, value2); // Ve burada value değişkenleri ekrana yazdırıyoruz.
      Console.WriteLine("Referanslar: {0}, {1}", reference1.Deger, reference2.Deger); //Burada da reference typeları ekrana yazdırıyoruz.
  }
}

Programımızın Çıktısı :
Valuelar: 0, 123
Referanslar: 123, 123
şeklinde olacaktır. Görüldüğü gibi value typelar'dan ikincisini birinciye eşitledikten sonra ikinciye 123 değerini vermemize rağmen birincinin değeri hala ilk değeri olan 0. Çünkü value typelar'da objeye bir referans olmayıp direk data kendi içerisinde depolanır. Burada value1'a 0 değeri verildikten sonra value2 value1 e eşitleniyor. Bu durumda value2 nin değeri de 0 oluyor. Daha sonra value2'nin değerini 123 yapsak ta bu sadece kendisine etkiyor. Ancak referans typlar'da durum daha farklı. Sonuçta bizim class1 adlı bir Class'ımız ve bu class içindede Deger adlı bir integer değişkenimiz var. Biz reference1 ve ikiyi direk bu Class1 e referans gösterdiğimiz için Class1'in içindeki Deger değişkeni ikisi içinde ortaktır ve hangi değeri alırsa ikisinde de aynı değeri almaktadır.
Umarım çok karmaşık olamamıştır ...

Not: Bu yazı yazarın MaxiASP.Com'daki yazısının parçalanmış halidir.

Bu dersi değerlendirin

İlgili Dersler
  Bağlantılı Katmanda (Managed Provider) Çalışmak
  Basit Metin Editörü Yapımı
  Borland© C# Builder I - Kurulum
  C# -  IV
  C# - I
  C# - II
  C# - III
  C# 'da HashTable Kullanımı
  C# ile Sayı Bulma Oyunu
  C# ile Web Servisleri
  C# la XML islemleri - Bölüm 1
  C#'a Giriş II
  C#'a Giriş III
  C#'da Indexleyicileri Kullanmak -I
  C#'da Indexleyicileri Kullanmak -II
  C#'da Indexleyicileri Kullanmak -III
  C#'ta Cookie Kontrolü
  C#'ta Çoklu Catch Blokları Kullanmak
  Önizleme: Visual C# 2005 Express Edition Beta 2
  Rastgele Kayıt Seçmek
  Repeater ile Tasarım ve Sayfalama
  Uygulama: Eposta Yollamak
  Uygulama:VS.Net ile Add-In Hazırlamak
  .Net Framework ve Kurulumu
  ADO.NET de Bağlantısız Katmanda Çalışmak
  ADO.Net Nedir?
  ADO.NET'in Getirdiği Avantajlar
  ASP.Net 2.0 Giriş
  ASP.Net Giriş
  ASP.Net ile String İşlemleri
  ASP.Net ile Türkçe Karakter
  ASP.NET İle Veritabanına Erişim & Veri Çekme
  ASP.Net ile XML Kullanımı I
  ASP.Net ile XML Kullanimi II
  ASP.NET Web Controllerinden Calendar
  ASP.NET Web User Controller
  ASP.Net'te Roller ve Kimlikler
  ASP'den ASP.Net'e Geçiş
  Bağlantılı Katmanda (Managed Provider) Çalışmak
  Borland Delphi 2005 - WinForms Örnek Uygulama
  Borland Delphi 2005 / Kurulum
  C#'a Giriş II
  C#'a Giriş III
  Delphi 8 .Net İle Uygulama Geliştirmek
  Delphi 8 ile Database Bağlantısı
  Delphi'nin Script Dili Olarak Kullanılması
  IEWebController - MultiPage
  Linux Üzerinde .Net Çalıştırmak
  Microsoft Excel'in Veritabanı Olarak Kullanımı
  Neden ASP.Net?
  Önizleme : Borland Delphi 2005
  Önizleme: Visual C# 2005 Express Edition Beta 2
  Pocket PC 2003 İçin Uygulama Geliştirmek
  SmartPhone 2003 İçin Uygulama Geliştirmek
  SQL Server'a Giriş
  TabStrip
  Uygulama: Eposta Yollamak
  VB.Net Multi Thread
  VB.Net'de Windows Registry İle Çalışmak
  VB.net'te Outlook Uygulaması
  VB.net'te Word Uygulaması
  VS.Net II
  VS.Net İle XSD Dosyalarının Oluşturulması
  VS.NET Nedir?
  WideDB İle DataBase İşlemleri
  Windows CE 5.0 İçin Uygulama Geliştirmek
  Windows Presentation Foundation'a Giriş
Bu içerik ile ilgili daha önce yapılmış yorumlar
Bu içerik ile ilgili yapılmış bir yorum yok,
ilk yorumu siz yapmak için aşağıdaki formu doldurunuz
Bu içerik hakkında yorum yazınız:

 

İsim:  
Email:  
Başlık:  
Yorum:  

 

anasayfa | dersler | örnek kodlar | forum | kaynaklar | dosyalar | biz kimiz ? | bir önerim var |  iletişim | hata bildir | reklam

MaxiASP.Net Rss Kaynağı:

Copyright 2002 - 2006 MaxiASP.Net (v 1.9) - Tüm Hakları Saklıdır.
 Alan Adı ve Bulundurma: Radore Hosting