C#, Yeni Bir Soluk

C# web programlama için yeni bir sayfa, ve öğrenilecek çok şey barındırıyor içerisinde.. Temel sözdizimi özellikleri basit örneğiyle birlikte bu makalede..

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 ; (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 { (açılır süslü parantez) ve bitiş için } (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 // kullanılır. Kendisinden sonra gelen ve satır sonuna kadar olan tüm karakterleri yorum yapar. Bir diğer yol ise, yorumu /* ile başlatıp */ ile bitirmektir. Yorumun başlangıç ve bitişi programcı tarafından belirleneceği için /* karakterlerinden sonra ve */ 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.

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

    <script runat="server">

    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("sayı = "
    + iDegiskeni.ToString() +
    "<br>");
    }
    }
    </script>

    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 iDegiskeni isimli 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 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 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. Void kelimesinin anlamı "boş" ''tur. Rutinin değer döndürmeyeceği anlamına gelir. Program 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 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 Response.Write satırını 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. 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 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..

    ,

    Arşivden

  • Yorum bulunmuyor.

    Yorum yazabilirsiniz


    * [b], [i] ve [quote] serbest