evcil.net noktanın egemenliği

1507 / 020

C#, Yeni Bir Soluk

Microsoft ''un Visual Studio.NET paketi ve .NET Framework teknolojisi ile
birlikte sunumunu yaptığı yeni programlama dili C# (Si şarp), çok
bilinmeyenli denklem görünümünden dolayı bu yeni teknolojinin en çok ilgi çeken
kısımlarından birisi oldu. Dile kolay; yepyeni bir programlama dilinden
bahsediyoruz. İsmiyle, sözdizimiyle ve genel yapısıyla C/C++ ''tan türetilmiş
olan C# atalarından daha modern olmakla kalmayıp daha yenilikçi olmayı ihmal
etmiyor. Tamamıyla nesne yönelimli..

.NET Framework ile sunulan dört
.NET programlama dilinden biri olan C#, aynı VB.NET gibi rahatlıkla ASP.NET
uygulamalarında kullanılabiliyor. Ayrıca ASP.NET kodu yazmak için C# kullanmayı
tercih eden web programcısı tüm Ana Sınıf Kütüphanesi''ni (Base Class Library)
elinin altında bulmaya devam ediyor. Yani C# ile VB.NET ASP.NET gözünde eşitler.
Herhangi birisine torpilli davranılmıyor veya kısıtlama getirilmiyor.

Bu
durumda bu yeni dili de öğrenip ASP.NET sayfalarımızda kullanmamamız için hiçbir
neden yok. Madem Microsoft ilk aşamada dört, ve sonradan +1( J# )
alternatif sunup "alın istediğinizi kullanın" demiş, fırsatı iyi değerlendirip
mümkün mertebe diğer dillere de göz atmalı, VBScript ''e olan göz
alışıklığımızdan dolayı bize daha kolay gelen VB.NET ile sınırlı kalmamalıyız.
Klasik ASP ''deki script dilli günleri geride bıraktık. Artık birden fazla
dilimiz ve renkli yayınımız var.

Peki, C# öğrenmeye nerden
başlayabiliriz ? Önce "programlama dili öğrenmek" kavramı konusuna açıklık
getirmek lazım bu noktada. Bir programlama dilini öğrenmekten tam olarak ne
kastedilir ? Herşeyiyle öğrenmek mi, yoksa sözdizimini öğrenip fonksiyonlar
yazabilecek, diziler kullanıp dolar kuru hesaplayabilecek programlama yapmayı
öğrenmek mi ?

Tüm programlama dillerinde öğrenci adayları için
öğrenilecek şey çok fazladır. 7 veya 21 günde dili öğretmeyi vaat eden
öğreticiler (tutorial) dile vakıf olmanızı değil sınırlı bir alanda özellikleri,
metodları kullanacak bilgiyi edinmenizi sağlar. Bizim bu ve ileriki makalelerde
öğrenmek istediklerimiz; C# ''ı ASP.NET sayfalarımızı programlamayabilecek kadar
öğrenip sıkıntı çekmeden istediğimiz yapabilecek bilgi olacak. Ayrıntıya
girmeden, kafa karıştırmadan C# ''ı en verimli şekilde kullanmaya çalışacak ve
bir nevi birlikte dalacağız bu yeni denize.

Kabul edersinizki geçmişi
olmayan bir insan ilk denemede çok derine dalarsa bu onun son dalışı olabilir.
İşte bu nedenle yavaş ilerleyecek ve önemli konuları x,y,z düzleminde
irdeleyeceğiz. Herşeyi hazmederek öğreneceğiz ki unutması zor olsun. Sanırım
giriş için bu kadar söz yeter, laf kalabalığı yapmadan artık C# ''a giriş
yapalım.


Giriş

Daha önce
de söylediğim gibi C# birçok açıdan C ve C++ '' benziyor. Bu nedenle bu iki dili
görmüş, tanımış ve kullanmışlığı olan kişiler hiç yabancılık çekmeyeceklerdir.
PHP, Java ve JavaScript kullanmış olanlar da sözdizimini, kontrol ve döngü
deyimlerini ilk bakışta tanıyacaklardır. Şimdi temel senktaks özelliklerine özet
bir bakış yapalım.


  • C# sözdiziminde tüm ifadeler class=CodeInText>; (noktalı virgül) işareli ile sonlandırılmak
    zorundadır. İki satıra taşmayan ifadeler söz konusu edilirse bu kuralı "tüm
    satırlar" şeklinde de söyleyebiliriz. C# derleyicisi için beyaz alanlar
    değersizdir. Enter, boşluk, tab gibi karakterler sevenleri ayıramaz. Derleyici
    ifade sonunu görmek için noktalı virgül işaretini arar.


  • Başlıcaları olarak sınıflar, fonksiyonlar/sub rutinler, kontrol ve döngü
    deyimleri olarak sayabileceğimiz kod bloklarının başlangıçlarını ve bitişlerini
    diğer birçok dildekinin aksine kelimeler değil işaretler belirtir. Başlangıç
    için class=CodeInText>{ (açılır süslü parantez) ve bitiş için class=CodeInText>} (kapanır süslü parantez) işaretleri kullanılır.



  • C# ataları gibi "case-sensitive" bir programlama dilidir. Yani
    büyük-küçük harf dengesine çok önem verir. Bir değişken veya nesnenin ismi
    deklare edilmesi sırasında nasıl yazılmışsa kullanılması veya çağırılması
    sırasında da o şekilde yazılmalıdır.


  • Yorum satırları yaratmak için birkaç yol vardır. Tek satır (single-line)
    menzilli yorum için class=CodeInText>// kullanılır. Kendisinden sonra gelen ve satır sonuna
    kadar olan tüm karakterleri yorum yapar. Bir diğer yol ise, yorumu class=CodeInText>/* ile başlatıp class=CodeInText>*/ ile bitirmektir. Yorumun başlangıç ve bitişi
    programcı tarafından belirleneceği için class=CodeInText>/* karakterlerinden sonra ve class=CodeInText>*/ karakterlerine kadar olan tüm karakterler (satırlarda
    dahil) yorum olacaktır. Bu işaretleri ters yazmak, kapanış işaretini koymadan
    "multi-line" (çok satır) yorum kullanmaya çalışmak hata verecektir.


    Şimdi kısa bir kod vererek 4 madde halinde verdiğim temel sözdizimi
    özelliklerine örnek veriyorum.








    class=ASP_PageDirective><%@ Page Language="C#" Debug="True"
    %>

    < class=HTML_ElementName>script runat= class=HTML_AtributListValues>"server"> class=HTML_CodeInServerSideBlock>

    void
    Page_Load(Object Source, EventArgs
    E)
    {
    int iDegiskeni; // Tek
    satır yorum

    /*
    Bu değişkeni kullanırken
    idegisken
    şeklinde çağırmak istersek hata
    alırız.
    */

    for (iDegiskeni=0 ;
    iDegiskeni <= 5 ; iDegiskeni++)
    {
    //
    Response.Write deyimini nasıl yazdım ?

    Response.Write( class=cs_s>"sayı = "
    + iDegiskeni.ToString() +

    class=cs_s>"<br>");
    }
    }
    class=HTML_Element></script class=HTML_AtributList>>

    Verdiğim
    bi C# kodu bazılarınız için çok tanıdık gelse bile bazılarınız içinse çok
    karmaşık ve yabancı
    geliyor olabilir. Kendi tecrübemden biliyorumki uzun
    süre Visual Basic ile ahbaplık etmiş (veya VBScript) bir insan C# sözdizimini
    (syntax) gördüğünde tam anlamıyla dumura uğrar. Bu durum C# öğrenmekten
    vazgeçmeye neden olabilir. Çünkü iki programlama dilinin sözdizimleri arasında
    gözle görülmeyi bırakın kendini gösterir farklar vardır.

    C#
    sözdiziminin en çok dikkat çeken ve belki de en güzel özelliklerinden birisi
    (bence) işaretlerin ağırlıklı olması kelimelerin ise sadece deyimlerin anahtar
    kelimesi olarak yer almasıdır. 500 satırlık bir Visual Basic kodunun C# ile
    yazıldığında 300 satıra düşmesi işten bile değildir.

    C# ''ın Ansi C ''den
    devraldığı ekstra özellikli operatörlerle tamsayılar için "artırma",
    "eksiltme" gibi işlemler hem daha az tuş basılarak yazılabilir. Hem de
    derleyici bu konu daha hızlı çalıştırır.

    Yukarıdaki C# koduna bakıp
    sözdizimine yabancı olanlar ilk bakışta değişken bildirimlerini farketmişlerdir.
    Visual Basic ve VBScript ''tekinin aksine çok daha az kelime kullanarak yapılan
    bu değişken deklaresi hem
    class=CodeInText>iDegiskeni isimli class=CodeInText>integer (tamsayı) türlü değişkenin tanımlanmasında, hem
    de page_load rutininin parametrelerinin bildirilmesinde görülebilir.

    C#
    ''da değişken bildirimleri
    class=CodeInText>değişken_tipi değişken_ismi; şeklinde yapılır. Aynı
    türde bildirimi yapılacak diğer değişkenlerde virgüllerle ayrılarak aynı satıra
    yazılabilir. Bir değişkene bildirimi sırasında değer atanmak istenirse class=CodeInText>değişken_tipi değişken_ismi = değer; sözdizimini
    kullanılır.

    Rutinler ve fonksiyonların türleri fonksiyon başlıklarında
    belirtilir. class=CodeInText>Void kelimesinin anlamı "boş" ''tur. Rutinin değer
    döndürmeyeceği anlamına gelir. Program class=CodeInText>void bir rutin veya fonksiyondan değer beklemez. Ancak
    dikkat edilmesi gereken bir nokta olarak; bu anahtar kelimenin tamamı küçük harf
    olacak şekilde yazılması gerekir. Benim, cümlenin başında baş harfi büyük olarak
    yazdığım gibi yazılırsa compile-time (derleme-zamanı) hatası alınır.


    C# ''ın case-sensitive olduğunu söylemiştim. Ancak bunun örneğini
    değişken isminde gösterip blamıştım. Verdiğim kodda case-sensitive olması
    açısından çok önemli bir yer daha var. Yorumda da belirttiğim gibi class=CodeInText>Response.Write deyiminin yazılışı.. Neden çok önemli ?
    Bu kodu ".aspx" uzantılı bir dosyaya kaydedin ve çalıştırın. Çalışacaktır. Şimdi
    class=CodeInText>Response.Write satırını class=CodeInText>response.write olarak değiştirin. Dosyayı tekrar
    çalıştırın. Compile-time hata alacaksınız. Neden ?

    Case-sensitive
    olmayan bir ortama alışkın olanlar böyle bir hatayı bu makaleyi okumadan
    yaptıklarında sorunun içinden çıkmakta çok zorlanırlar ve belki de uzun bir
    zamanı monitörü parçalama isteğiyle harcarlar. Aslında çok küçük bir
    küçüklük-büyüklük hatası olan bu sorun uygulamanın çalışmasını engeller.


    Nasıl değişkenlerin bildirildiklerindeki gibi yazılmaları gerekiyorsa,
    C# ''ın anahtar kelimelerinin de orjinal halleriyle yazılmaları gerekir. class=CodeInText>Response.write şeklinde bir kullanım sonucu Response
    nesnesinde write isimli bir tanımlama olmadığı hatası alınır.


    Sonuç

    Sanırım C#
    ''ın temel sözdizimi ile ilgili ipuçlarını yeterince açıklayabildim. İlk C#
    makalemde çok fazla ayrıntıya girmemek, ve temel konuları blamak için özen
    gösterdim. Belki class=CodeInText>for döngü deyimini kullandığım halde açıklamadım. Ama
    kodu renklendirecek bir ortamda bir süre incelerseniz birçok noktayı daha
    anlayabileceğinize inanıyorum. Benim verdiğim temel özellikleri hatırlayıp,
    birçok deyimin de bu şekilde yazılacağını unutmayın.

    Daha ileri seviye
    C# makalelerinde görüşmek üzere..

    Yazan: Muhammed C. Tahiroğlu

    No description. Please complete your profile.
  • Comments (0) Trackbacks (0)

    No comments yet.


    Leave a comment


    No trackbacks yet.

    Sayfalar

    Kısımlar

    Desteklediklerimiz

    Ay bazında arşiv

    Haberleşme