2. Visual Basic Dersi : Program Yazmaya Başlıyoruz

Bir onceki ders veya makalede .NET uyumlu Visual Basic programlama diline başlama konusunda biraz sohbet etmiştik. Bu derste ise kod yazmaya başlayacağız. Visual Basic konulu hangi kitabı alırsanız alın, Visual Basic konulu hangi kursa gidiyorsanız gidin, Visual Basic programlama diliyle ilgili dersleri hangi fakultede alıyorsanız alın Visual Basic'le calışmaya bu dersleri okumakla başlamanızı oneriyoruz. Bu sayede Visual Basic'e ayırmanız gereken zaman buyuk oranda azalacaktır.

Yıllardır konu programcılık uzerine yazmak olduğunda asıl olanın anlatma şekli olduğunu savunuyorum. Yoksa soz konusu programlama diliyle ilgili olarak hemen her şey kısa surede soylenmekte, hemen her sorunun cozumu bir şekilde anlatılmaktadır. Yoksa programcılık uzerine yazan birisinin okurları ile paylaştığı bir yenilikten soz etmesi uzak bir ihtimaldir. Bu durumda programcılık uzerine yazanlar ancak anlatma bicimleri ile ovunebilirler, ancak kurdukları cumlelerin duzgunluğu ile fark yaratabilirler. Yoksa bu makalede anlattığım her şeyi Visual Basic'le az cok uğraşmış herkes biliyordur. Yani bu makalede Visual Basic uzerine yeni bir şey soylemem ihtimal dışıdır. Buna rağmen birileri ortaya cıkıp konsolda VB kodunu derlemeyi benden calmışsın diyebilir. Hatta bununla da yetinmeyip Visual Studio'nun File menusunden komut verip yeni proje hazırlamayı benim kitaptan calmış olmalısın diyebilir. Yani sayın okurlar sizlere uc beş kelime anlatmak icin kendimi nasıl bir tehlikenin icine atmış olduğumu bilmenizi isterim.

.NET Framework’u Kurmak

Herhangi bir programlama dili ile calışılıp uygulama geliştirilmek istendiğinde ilk yapılması gereken derleyici edinmektedir. Ancak konu .NET Framework uyumlu programlama dilleri olduğunda derleyici aramak zorunda kalmıyorsunuz. Cunku C#, Visual Basic ve C++ derleyicileri .NET Framework ile birlikte ucretsiz olarak dağıtılmaktadır. Buna gore Visual Basic programları yazabilmek icin bilgisayarımıza .NET Framework’un kurulu olması yeterlidir. Kullandığınız bilgisayarda Windows Vista kurulu ise ayrıca .NET Framework kurmanız gerekmiyor. Cunku .NET Framework Vista ile birlikte geliyor. Kullandığınız bilgisayara Windows XP kurulu ise microsoft.com’dan .NET Framework’u indirip kurmanız gerekir.

Şu gunlerde kullanıma sunulan .NET Framework’un en son surumunun numarası 3.5. Daha once işaret edildiği gibi bu derslerde ornek olması icin verilen kucuk programları yazıp deneyebilmeniz icin .NET Framework’un 2.0 surumu yeterlidir. Bilgisayarınıza .NET Framework’un yuklu olup olmadığını veya yuklu ise hangi surumun yuklu olduğunu oğrenmek icin Windows’un Program Ekle veya Kaldır penceresine bakabilirsiniz.

Kullandığınız bilgisayara .NET Framework kurulu ise hemen Visual Basic programları yazabilirsiniz. Not Defteri ile Visual Basic kodu yazıp VB uzantısı ile herhangi bir klasore kaydedip sonra da .NET Framework ile gelen Visual Basic derleyicisi(yani vbc.exe dosyası) sayesinde derleme yapıp EXE dosya hazırlayabilirsiniz. Bu derste oncelikle C# programlarını Not Defteri ile yazıp derleyeceğiz. Devamında Visual Basic icin hazırlanmış Express Edition’dan yararlanacağız.

Şimdi Microsoft’un sitesine uğrayıp .NET Framework 3.5’ı indireceğim. Bu amacla microsoft.com’da arama yapıp .NET Framework 3.5’ı indirebileceğim linki buldum. Bulduğum linki tıklayınca ekrana aşağıda verdiğim diyalog kutusu geldi.

http://www.memikyanik.com/dersler/cs..._2_resim_1.jpg

Yaklaşık 3 Mb’lık bu dosyayı indirip bilgisayarıma kaydettikten sonra calıştırdım. .NET Framework 3.5 gercekte 72 MB olduğu icin indirdiğiniz dosyayı calıştırıp kurmaya başladığınızda geri kalanı Microsoft’un sitesinden indiriliyor. Başka bir deyişle nete bağlı değilken bu 3 Mb’lık dosya ile kurma işlemi yapılamıyor.

Program Yazmaya Başlıyoruz.

Konu .NET uyumlu programlama dilleri olduğunda ilk karşılaşacağınız kavram belki de Class kavramıdır. Hemen ilk dakikada size Class’ları anlatmayacağım. Her ne kadar Visual Basic'in .NET uyumlu surumu icin hazırlanan programları Class şeklinde duzenlemek bir zorunluluk olmasa bile en zor anlaşılan konuların başında Class’lar geldiği icin bu derste en azından adından soz edeceğim. Bu sayfalarda daha once yayınlanan ilgili C# dersini okumuş olanlar benzer cumle ve orneklerle karşılaşacaklardır.

Gunumuzun modern programlama dillerinde programlar genellikle Class’lar şeklinde paketlenmekte, Class’lar şeklinde duzenlenmektedir. Programları Class’lar halinde paketlenmenin sayısız yararları vardır. Ancak bunları burada anlatmayacağım. Class’lar hakkında bilgi sahibi olmadan Visual Basic 6 ve Delphi gibi dillerle program geliştirmek mumkun iken C++, C#, Java ve Visual Basic for .NET gibi programlama dilleri Class’lar hakkında bilgi sahibi olmanızı zorunlu kılmaktadır.

Quick Basic, Pascal ve C gibi klasik programlama dillerinde kod dosyaları icinde fonksiyonlar ve procedure’ler bulunuyordu. Hatta C’de fonksiyon procedure ayrımı da yoktur. Başka bir deyişle programcılar yapmak istedikleri işlemlere uygun fonksiyonlar yazıp gerek duydukca bunları cağırıyorlardı.

Zamanla programlar buyuyup karmaşıklaştıkca paketlenmesi ihtiyacı doğdu. Fonksiyon ve metotların Class’lar halinde paketlenmesi ile birlikte Class icinde bulunan fonksiyonların kullanılması, organize edilmesi ihtiyacı doğdu. Gunumuzde yaygın olarak kullanılan programlama dillerinde Class’lar metotlardan başka Interface’leri, Olayları, Ozellikleri, Delegate’leri ve Yapıcı metotları icerebilmektedir. Lutfen şimdi olay nedir ozellik nedir diye sormayın. Zamanı gelince bu konular hakkında bilgi verilecektir.

Yerli yabancı ayrımı yapmadan bugune kadar hangi kaynağa baktıysam konu nesneye yonelik programcılık olduğunda ilk birkac sayfada biyolojiden, memelilerden, utulerden arabalardan vs. soz edilmektedir. Her yazar nesneye yonelik programcılığın 3 temel kavramını kendince anlatmaktadır. Hemen belirtmek isterim ki kişisel goruşme gore bu anlayış oğrenmeyi zorlaştırmaktadır.

İstenilen ayrıntıda polimorfizm’den soz edilsin, biyolojiden memelilerden ornek verilsin bu kavramların kod karşılığı gorulmeden verilen bilgiler havada kalıyor. Bu nedenledir ki bu derste nesneye yonelik programcılığın temel kavramlarının adını anmadan, bir daha “nesneye yonelik programcılık” sozunu etmeden bu konuyu anlatmak istiyorum. Esasında burada bilim yapmıyoruz, olsa olsa sizlere .NET uyumlu Visual Basic gibi bir programlama dili ile nasıl program yazabileceğinizi anlatmak istiyoruz. Amacımız en basit şekilde programcılık tecrubesi olmayanları bile programcılığa alıştırmaktır, onları .NET uyumlu Visual Basic .NET ve diğer programlama dillerini oğrenebileceklerine inandırmaktır.

Aşağıda en basit veya en kısıtlı, en az satıra sahip bir Visual Basic programı bulunmaktadır. Bu kodu Not Defteri penceresine yazıp VB uzantısı ile kaydedip .NET Framework ile gelen Visual Basic derleyicisi ile derleyip EXE yapabilirsiniz. Bu işlemin nasıl yapıldığı bu dersin ileriki sayfalarında anlatılacaktır.

Module Deneme
Sub Main()
End Sub
End Module

Bu koda dikkat ederseniz Module deyimi ile başlayıp End Module deyimi ile sona erdirilen bir kod bloğu var. Bu kod bloğunun icinde ise Main() adında bir procedure yani bir metot var. Topu topu 4 satıra sahip bu Visual Basic kodunu derlediğinizde hata meydana gelmez ama bu programın yaptığı herhangi bir işlem yoktur. Şimdi bu Visual Basic programına DOS penceresine yani konsola bilgi yazan bir satır ekleyeceğim.
http://www.memikyanik.com/dersler/vb..._2_resim_1.jpg

Bu şekilde duzenlenen Visual Basic programı derlenip calıştırılırsa konsola yani DOS penceresine belirtilen mesaj yazıldıktan sonra Enter tuşuna basılıncaya kadar programın calışması devam eder. Dikkat ederseniz bu kodda Class hazırlamadım. Bu orneği vermemdeki amac, Visual Basic'in .NET uyumlu surumunde Class hazırlamanın bir zorunluluk olmadığını size gostermektir. Şimdi sanki Visual Basic programlarının mutlaka Class şeklinde duzenlenmesi gerektiğini varsayıp ona gore anlatmaya devam edeceğim. Bu duşunce ile yukarıda verdiğim kodu aşağıdaki gibi duzenledim.

Class Deneme
Shared Sub Main()
System.Console.Write("Şampiyon Beşiktaş")
System.Console.Read()
End Sub
End Class

Tıpkı C, C++ ve C# programlarında olduğu gibi Visual Basic programlarının başlangıc noktası Main()metodu olduğu icin Main() metoduna yer vermek zorundasınız. Bu Visual Basic kodu VB uzantılı bir dosyaya yazılıp derlenip hazırlanan EXE dosya calıştırılırsa ekrana belirtilen mesaj yazılır.

Bu Visual Basic programındaki Main() metodunun shared olduğunu işaret ettim. Visual Basic programlarının başlangıc noktası olan Main() metodu bir Class’ın icine alındığında halinde shared olmak zorundadır. Yukarıda Main() metodunu Module icine aldığım icin buna gerek olmamıştı. Neden Module-End Module bloğuna yazılan Main() metodunu Shared olarak işaret etmedim? Cunku Visual Basic derleyicisi Module-End Module bloğu icinde hazırlanan metotların Shared olduğunu varsaymaktadır.

Şimdi Visual Basic programının başlangıc noktası olan Main() metodu icinde bir değişkene yer vereceğim. Bu değişkeni Main() metodu icinde tanımladım. Değişkeni Main() metodu tarafından sınırlanan kod bloğu yerine Class bloğu icinde tanımlayabilirdim.

Class Deneme
Shared Sub Main()
Dim Yil As Integer
End Sub
End Class

Gorduğunuz gibi Visual Basic programlarında değişken tanımlanırken Dim deyiminden(buna anahtar kelime diyenler de var) yararlanılmaktadır. Dim deyiminden sonra değişkene verilmek istenen ad yazılıp, ardından değişkenin tipi işaret edilmektedir.

Buradaki integer bu değişkenin tamsayı tipindeki bilgileri saklayabileceğini işaret etmektedir. Programcılıkta değişken tanımlamayı gunluk hayatta telefon edip bir otelde yer ayırtmaya benzetmek mumkundur. Bu değişkeni tanımlamakla derleyiciye demiş oluyoruz ki, “programın işletimi Main() metodunun icinde iken elimdeki integer tipindeki bilgileri bellekte tutma gereğini duyabilirim. Bu nedenle bana bellekte yer ayırt.”

Bu kısacak kodu yorumlamak gerekirse, bu programdaki “Deneme” adlı Class’ın Main() adında bir metodu bulunmaktadır. Main() metodu icinde yaşayabilecek “Yil” adında ve Integer tipindeki bilgilerin aktarılabileceği bir değişken tanımlanmıştır. Daha sonra değişkenlerin nasıl tanımlandığı konusu işlenecektir. Tabi yerli yazarın birisi cıkıp bu "yil" adını verdiğim değişkenin adına itiraz edebilir. Muhtemel değişken adı calma suclamaların onune gecmek icin yukarıda verdiğim kodu aşağıdaki gibi değiştirdim. Yani Yıl değişkenine bu kez "kıl" adını verdim.

Class Deneme
Shared Sub Main()
Dim kil As Integer
End Sub
End Class

Yukarıda belirtildiği gibi Visual Basic programları dahilinde hazırlanan Class’lar metotları barındırabilmektedir. Yukarıda verdiğim kısıtlı Visual Basic programı icinde hazırladığım Class’ta 2. bir metot hazırladım. Herhangi bir satır icermeyen bu metot bu hali ile herhangi bir işlem yapmaz. Bu metodu da Shared olarak işaret ettiğimi fark etmiş olmalısınız.

Class Deneme
Shared Sub Main()
Dim Yil As Integer
End Sub

Shared Sub Mesaj()
End Sub
End Class

Daha once C#, C++ ve Delphi gibi herhangi bir programlama dili ile program geliştirenlere bu derste anlatılanlar basit gelecektir. Bu derslerdeki amaclarımdan birisi Visual Basic .NET gibi bir programlama dilinin nasıl kolay oğrenilebileceğini kanıtlamaktır. Programcılıkta tecrubeli arkadaşlara bir onerim var; sizler bu yazıda ne anlatıldığı ile değil de nasıl anlatıldığı ile ilgilenebilirsiniz.

Şimdi ise yukarıda verdiğim basit Visual Basic kodundaki Mesaj() adını verdiğim metot veya yordamı işleteceğim. Hazırladığım metot aynı sınıfın icinde olduğu icin herhangi bir hazırlık yapmadan direk adıyla cağırıp işletmek mumkundur. Tabii "Mesaj" sık kullanılan bir metot adı olduğu icin yerli programcılık kitabı yazarlarından birisi ortaya cıkıp "benim metot adımı calmışsınız" derse buna şaşırmamak gerekir(!).

Class Deneme
Shared Sub Main()
Dim Yil As Integer
Mesaj()
End Sub

Shared Sub Mesaj()
End Sub
End Class

Bu hali ile bu Visual Basic programı veya VB uzantılı kod dosyası DOS penceresinde derlenip EXE dosya hazırlanıp calıştırılırsa Main() metodu otomatik olarak işletilir. Cunku yukarıda soylendiği gibi Visual Basic programları Main() metodundan itibaren calışmaya başlarlar.

Bu programı aşağıdaki gibi duzenlemiş olsaydım değişen bir şey olmazdı. Bu kısa ornekte “Yil” adını verdiğim değişkeni hic kullanmadığım icin Visual Basic derleyicisi derleme sırasında uyarı mesajı verir.

Class Deneme
Shared Sub Mesaj()
End Sub

Shared Sub Main()
Dim Yil As Integer
Mesaj()
End Sub
End Class

Şimdi bu Mesaj() adını verdiğim metotta değişiklik yapıp işletildiği zaman ekrana bilgi yazılmasını sağlayacağım. Konsolda yani DOS penceresinde calışan Visual Basic projelerinde ekrana bilgi yazma işlemleri .NET Framework ile gelen Console sınıfında tanımlı olan Write() veya WriteLine() metotları ile yapılmaktadır.
http://www.memikyanik.com/dersler/vb..._2_resim_2.jpg
Bu şekilde duzenlenen Visual Basic uygulaması DOS penceresinde derlenip calıştırıldığında ekrana “Beşiktaş” yazdırılır. Mesaj() metoduna yazdığım satır hakkında biraz konuşmak gerekirse şunlar soylenebilir; “System.Console.WriteLine("Başiktaş");” satırındaki System bir Namespace’tir. Şimdi diyeceksiniz Namespace nedir? Cevabım hazır: Lutfen merakınızı sonraya saklayın; halk dili ile soylemek gerekirse “uzumu ye bağını sorma”.

Kısaca anlatmak gerekirse Class’lar Namespace’lerin icine yerleştirilmektedir. System adlı Namespace .NET Framework ile gelen en onemli Namespace’tir ve cok sayıda Class’ı barındırmaktadır. DOS penceresine veya konsola bilgi yazmak uzere hazırladığım satırdaki Console bir Class’tır. Cok sayıda metoda sahip olan bu Class’ın sayesinde konsol yani DOS penceresi ile ilgili istenen işlemler yapılabilmektedir. Bu satırdaki WriteLine() ise Console sınıfının bir metodudur.

Bu konuyu bir okulda, bir dershanede veya seminerde anlatıyor olsaydım Visual Basic hakkında biraz bilgisi olanlar “Memik bey WriteLine() shared bir metot değil mi?” diye sorabilirlerdi. Soruyu soranlara cevabım “evet, WriteLine() metodu shared bir metottur”. Tabii dersi veya semineri izleyenlerin bazıları “shared olanla olmayan metot arasında ne fark vardır?” diye soru soracaklardı, bazıları ise keşke bu konuşulanları anlasaydım diye ic gecireceklerdi. Fırsat bu fırsat deyip hemen shared olan ve olmayan metotlar hakkında uzun acıklamalar yapmayacağım.

Bazılarınız bu kısacak orneği bile hemen denemek, bu VB uzantılı dosyayı derleyip EXE dosya hazırlamak istiyor olabilir. Bu isteğe uyup VB uzantılı kod dosyasını derleyip EXE yapma uzerinde duracağım. Not Defteri ile hazırlayacağınız kod dosyalarını yerleştirmek uzere ayrı bir klasor hazırlamanızı oneririm. Bu klasor “C:” surucusunun kok klasorunde olursa ulaşılması kolay olur.

Visual Basic’in kurallarına uyarak yazdığınız programları derleyip EXE dosya hazırlayacak program dosya*sı(VBC.EXE) Windows’un kurulu olduğu klasorun altında “Microsoft.NET\Framework” klasorunde yer almaktadır. .NET Framework’un başka surumunden yararlanıyorsanız bu klasorun adı farklı olabilir.

http://www.memikyanik.com/dersler/vb..._2_resim_3.jpg


Hazırlayacağınız VB uzantılı kod dosyalarını ya VBC.EXE dosyasının bulunduğu bu klasore kaydetmeli ya da Denetim Masasındaki Sistem seceneği ile ekrana getirilen Sistem Ozellikleri diyalog kutusunda Gelişmiş sekmesindeki Sistem Değişkenleri seceneğinden yararlanmalısınız. Path seceneğinin iceriğine aşağıda verdiğim satırı ekleyip bilgisayarı yeniden başlatırsanız istediğiniz yerden VB uzantılı program dosyalarını derleyebilirsiniz.Visual Basic programlarında .NET Framework 3.5 ile gelen sınıfları kullanıyorsanız arama yoluna .NET Framework 3.5’a ait klasoru dahil etmelisiniz.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;
C:\WINDOWS\Microsoft.NET\Framework\v3.5;"

Yukarıda sozu edilen derleyiciden başka .NET Framework 3.x/2.0 SDK(Software Develoment Kit) adı altından cok sayıda yardımcı program verilmektedir. Bu programlardan yararlanmayı duşunuyorsanız Visual Studio’nun kurulu olduğu klasorun altındaki “..SDK\v.2.0\Bin” klasorunu de arama yoluna dahil etmeniz onerilir. Diğer yandan Başlat menusunden Visual Studio 2008 Command Prompt komutu verilerek acılan DOS penceresinde yukarıda anlatılan şekilde Path ayarlaması yapılmasa bile Visual Basic programlarını istediğiniz yerde derleyebilirsiniz.

Şimdi sıra geldi bu programı derlemeye. Bu amacla bir DOS penceresi acıp komut satırına “VBC ILK.VB” yazıp Enter tuşuna basınca Visual Basic programı derlenmeye başlandı. Yazdığım programda herhangi bir hata olmadığı icin EXE dosya hazırlandı.
http://www.memikyanik.com/dersler/vb..._2_resim_4.jpg
Yazdığım programda Main() metodu icinde “Yil” adında ve integer tipinde bir değişken tanımlamış olmama rağmen bu değişkeni hic kullanmadığım icin derleyici uyarıda bulundu. Bu uyarı “ilk.vb” dosyasından yola cıkılıp ILK.EXE dosyasının hazırlanmasına engel değildir. Derleyici uyarı yerine hata mesajı vermek zorunda kalsaydı EXE dosya hazırlanmazdı.

Tekrarlamak gerekirse derleme işlemi sonucu VB uzantılı Visual Basic programı ile aynı ada sahip bir EXE dosyası hazırlanır. Aşağıda verdiğim ekran goruntusunu bu EXE dosyayı calıştırdıktan sonra aldım. Derleme sonucu hazırlanan EXE dosya ancak .NET Framework kurulu bilgisayarda calışır. Bu EXE dosyayı alıp .NET Framework kurulu olmayan başka bir bilgisayara goturduğunuzde calışmaz. Aşağıda verdiğim ekran goruntusunu hazırladığım EXE dosyayı calıştırdıktan sonra aldım.
http://www.memikyanik.com/dersler/vb..._2_resim_5.jpg
Hazırlayıp derlediğim Visual Basic programı ekrana bu bilgiyi yazdıktan sonra calışması otomatik olarak sona erer. Şimdi bu ormekte oyle bir ayarlama yapalım ki programın veya EXE dosyanın calışması Enter tuşuna basıncaya kadar devam etsin. Programın calışmasının Enter tuşuna basıncaya kadar devam etmesini sağlamak uzere koda bazı eklemeler yaptım.

Class Deneme
Shared Sub Main()
Dim Yil As Integer
Mesaj()
System.Console.WriteLine()
System.Console.Write("Cıkmak icin Enter Tuşuna Basın")
System.Console.Read()
End Sub

Shared Sub Mesaj()
System.Console.WriteLine("Şampiyon Beşiktaş")
End Sub
End Class

Gorduğunuz Console sınıfının WriteLine() metodunu Mesaj() adını verdiğim metodun icinden başka bir de Main() metodu icinde kullandım. Bu ornekte Main() metodu icinde once Mesaj() adını verdiğim metot cağrıldığı icin ekrana once “Şampiyon Beşiktaş” yazılır. Mesaj() metodunun cağrıldığı satırdan sonra yine WriteLine() metodu kullanılmaktadır. Bu kez WriteLine() metoduna ekrana yazılmak uzere bilgi parametre olarak verilmediği icin ekranın o satırı boş kalır. Bir sonraki satırda ise WriteLine() yerine Write() metodunu kullandım.

WriteLine() metodu kendisine parametre olarak verilen bilgiyi ekrana yani DOS penceresine yazdıktan sonra imleci bir sonraki satırın başına alır. Write() metodu ise WriteLine() metodundan farklı olarak imleci bir sonraki satırın başına almaz. Burada programın calışmasının kendiliğinden sona ermesini engelleyen metot ise Read(). Bu şekilde duzenlenen Visual Basic programı derlenip calıştırıldığında aşağıdaki gibi bir sonuc alınır. Read() yerine ReadKey() metodunu kullanabilirsiniz.
http://www.memikyanik.com/dersler/vb..._2_resim_6.jpg
Read() metodu gercekte kullanıcının gireceği bilgileri programa veya bir değişkene aktarılırken işlevsel olmaktadır. Bu ornekte kullanıcının bilgi girmesini istemediğimiz icin Read() metodundan once herhangi bir değişken adı yazmadım. Diğer yandan yukarıda verdiğim ornekte asıl anlatmak istediğim şuydu: Visual Basic programları isteğe bağlı olarak Class’lar şeklinde hazırlanmakta ve Class’larda kod blokları metot şeklinde duzenlenmektedir.

Bu duşunce ile hazırladığım kısacık ornekte Main() metodundan başka Mesaj() adında bir metot hazırlayıp Main() metodu dahilinde işlettim. Şimdi bu ornekte değişiklik yapıp Mesaj() adını verdiğim metodu silip calışma anında “yil” adını verdiğim değişkene bilgi aktarmaya calışacağım.

Class Deneme
Shared Sub Main()
Dim Yil As Integer
System.Console.Write("Hangi Yıldayız : ")
Yil = System.Console.Read()
End Sub
End Class

Bu şekilde değiştirdiğim Visual Basic programında Write() metodu ile kullanıcıya mesaj verdikten sonra bir sonraki satırda Read() metodu sayesinde kullanıcıdan istenen bilgiyi “Yil” adını verdiğim değişkene aktardım. Aşağıda verdiğim ekran goruntusunu bu kısa programı derleyip calıştırdıktan sonra aldım.
http://www.memikyanik.com/dersler/vb..._2_resim_7.jpg
Ekrana mesaj yazarken Write() yerine WriteLine() metodunu kullansaydım imlec bilgi girişi icin bir sonraki satırda beklerdi. Şimdi bu Visual Basic programına ekleme yapıp kullanıcıdan istenip “Yıl” değişkenine aktarılan bilgiyi WriteLine() metodu ile tekrar ekrana yazacağım.

Class Deneme
Shared Sub Main()
Dim Yil As Integer
System.Console.Write("Hangi Yıldayız : ")
Yil = System.Console.Read()
System.Console.WriteLine()
System.Console.Write("Girdiğiniz Yıl :")
System.Console.WriteLine(yil)
End Sub
End Class

Bu şekilde duzenlenen program derlenirken hata vermediği gibi calıştırıldığında da hata vermez ama girilen yıl bilgisi ile sonradan Write() metodu ile ekrana yazılan yıl bilgisi birbirinden farklı olur. Aşağıda verdiğim ekran goruntusunu bu Visual Basic programını derleyip calıştırdıktan sonra aldım.
http://www.memikyanik.com/dersler/vb..._2_resim_8.jpg
Bu hatanın nasıl duzeltileceğini hemen anlatmak yerine bir sonraki derste Visual Basic ile ilgili temel bilgileri kaldığımız yerden anlatmaya devam edeceğim.

Bu Dersin Ozeti

Birkac cumle ile yukarıda yazılanları ozetlemek gerekirse; Not Defteri ile yazdığımız ilk programda once Class bloğuna yer verdik. Visual Basic programları calışmaya Main() metodundan itibaren başladıkları icin Class’ın sınırları icinde Main() metoduna yer verdik. Main() metodu icinde Console sınıfının WriteLine() metodu ile konsola yani DOS penceresine bilgi yazmayı denedik. Ayrıca .NET Framework ile gelen Visual Basic derleyicisi ile yani VBC.EXE ile VB uzantısı ile kaydettiğimiz Visual Basic kodunu derleyip EXE dosya hazırladık.

Yukarıda yazılanları okurken kafanızda bazı soruların belirdiğini tahmin etmek zor değildir. Programcılık biraz da bisiklet surmeyi oğrenmek gibidir: Onceleri sık sık bisikletten duşersiniz, insanların 2 teker uzerinde nasıl duşmeden gittiklerine hayret edersiniz. Sonra 50 metre duşmediğinizde; bisiklet surmesini oğrendiğinizi fark edersiniz. Bircok kişi programcılığa nereden başlayacağı konusunda tereddude duşuyor. Bu soruların cevaplarını bu dersler boyunca birlikte araştıracağız. Bu derslerin şimdiye kadar incelemiş olduğunuz yerli-yabancı kitaplardakinden farklı bir anlayışla kaleme alındığını fark etmiş olmalısınız.
__________________