Makale Özeti

"VB.NET biliyorum C# da öğrenmek istiyorum." diyenler için bir makale dizisi.

Makale

VB.NET 'den C#'a - 1

.NET Framework'ün alt yapısı sayesinde .NET derleyicisi olan herhangi programlama dili ile .NET Framework üzerine uygulama geliştirebilirsiniz.

Bu dillerin sayısı ne kadar fazla olsa da .NET Framework üzerine uygulama geliştiren kullanıcıların tümüne yakını Visual Basic.NET (VB.NET) veya C# ile uygulama geliştirmektedir.

.NET ile tanıştığımızda VB.NET, Visual Basic geliştiricileri .NET'e geçişini kolaylaştıracak bir seçim olarak VB.NET'i tercih ettiler. Java, C gibi dillere aşina olanlar ise C#'ı tercih ettiler.

.NET Framework 2.0 ve beraberinde VB.NET ve C#'ın yeni sürümleri çıkmak üzereyken, dil seçimi, bunların performansı, kim hangi dili tercih etti,etmeli ve benzeri konulara girmeden makale serimizin esas amacna yönelmek istiyorum.

"VB.NET biliyorum C# da öğrenmek istiyorum."

Evet bu cümleyi kuran arkadaşlar bu makele serisinin hedef kitlesidir. Etrafımda bu cümleyi kuran bir çok kişi var. VB.NET bilen birisi neden C# öğrenmek ister? Bunu yapabilmesi ne kadar sürer?

VB.NET ile .NET Framework üzerine uygulama geliştirebilirsiniz ancak, iş yerinizi C# kullanıyor olabilir, devam etmeniz gereken bir proje C# ile yazılmış olabilir, vb...

.NET Framework üzerine VB.NET uygulama geliştiren birisinin C#'ı öğrenmesine gerek olup olmadığı, getirebileceği avantajların üzerinde durmaya bile gerek yoktur. Hiç şüphesiz C# bir .NET gerçeğidir.

BÜYÜK-küçük harf duyarlılığı

VB.NET ile uygulama geliştiren birisinin C#'da karşılaşacağı farklılıklardan birisi büyük küçük harf duyarlılığı olacaktır.

VB.NET ile aşağıdaki şekilde bir komut yazabilirsiniz.

   system.wEb.secuRITY.fOrmsautHENtication.hashpasswordforstoringinConfigfile(parola,"md5")

Ancak aynı kodu C#'da yazmak istediğinizde kullandığınız namespace,sınıf,metodların isimlerini büyük küçük harfe dikkat ederek yazmanız gerekmektedir.
   System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(parola,"md5");

Satır bitişleri

VB.NET'de satır bitişi enter (13+10 karakterleri, CRLF)  ile belirlenir. Bir satırda yazılması gereken kod ifadesini iki satır ile yazabilmek için alt çizgi (_) karakteri kullanılır.

         System.Web.Security.FormsAuthentication. _

        HashPasswordForStoringInConfigFile("123", _

        "md5")

C#'da ise satır bitişini belirlemek için noktalı virgül karakteri (;) kullanılır. Virgül karakteri kullanacağınız noktaya kadar olan kod ifadesi birden çok satıra yayılmış olsa bile tek bir kod satırı olarak çalışacaktır.

                  string parola;

                  parola=

                        "123";

                  parola=

                        System.Web.Security.

                        FormsAuthentication.HashPasswordForStoringInConfigFile (parola,

                        "md5");

                  MessageBox.Show("Hash : " +

                        parola);

Not: Yukarıda ki örnek kod parçalarında System.Web namespace'i altındaki bazı sınıflar bir windows uygulamasında kullanılmaktadır. Bunun için System.Web.dll'i uygulamaya referans olarak eklenmiştir. Gerçek hayatta uygulamalarınız da yaptığı işlev itibari ile web'e özel olmayan, bir windows uygulamasında da işinize yarayacak olan sınıfları (System.Web.Mail.MailMessage,...HashPasswordForStoringInConfigFile gibi) kullanmak için rahatlıkla System.Web.dll projenize referans olarak ekleyebilirsiniz.

Yorum Satırları

VB.NET'de bir satırı yorum satırı yapmak için tek tırnak karakteri (') yada REM komutu kullanılır.

   'vb.net için yorum satırı
   REM vb.net için yorum satırı

C#'da yorum satırları VB.NET'de olduğu gibi sadece bir satır için de tanımlanabilir. Yada birden fazla satırı yorum satırı olarak belirleyecek ifadeler de kullanılabilir.

C#'da tek satırlık yorum satırı oluşturmak için iki düz bölü işareti(slash) (//) kullanılmalıdır.

   //C#'da tek satırlık yorum satırı

C#'da birden fazla satırı yorum satırı olarak belirlenmek istenen satırlar /* */ karakterlerini arasına yazılır.

             /*

             bu satırlar c# tarafından

             yorum

             satırı olarak

             algılanacaktır.

             */

Operatorler

VB.NET'de kullanılan bir çok operator ve C# karşılıkları, MSDN Documentation kaynaklı aşağıdaki karşılatırmalı tabloda gözükmektedir.

  Visual Basic C#
  Toplama + +
  Çıkarma - -
  Çarpma * *
  Bölme / /
  Tam sayı bölme \ /
  Mod alma Mod %
  Üssünü almak ^ yok (Math sınıfı kullanılabilir)
  Atama = =
  Ekle eşitle += +=
  Çıkar eşitle -= -=
  Çarp eşitle *= *=
  Böl eşitle /= /=
  Tam sayı böl eşitle \= /=
  Ekle (string) eşitle &= +=
  Küçük < <
  Küçük veya eşit <= <=
  Büyük > >
  Büyük veya eşit >= >=
  Eşit = ==
  Eşit değil <> !=
  İki nesne referansını karşılaştırma Is ==
  Nesnenin türünün kontrol edilmesi TypeOf x Is Class1 x is Class1 (as ve typeof anahtar kelimeleride vardır.)
  String birleştirme & +
  AND kısayol AndAlso &&
  OR kısayol OrElse ||
  Dizi tanımlama eki () [ ]
  Function çağrı eki () ( )
  Tür dönüşümü Cint, CDbl, ..., CType (tür ismi)
  Bir ekleme kısayolu n/a ++
  Bir çıkarma kısayolu n/a --
  Değil Not !
  Hızlı If IIf Function () ?:

Cengiz HAN
Microsoft ASP.NET MVP
cengiz@cengizhan.com