C#'a Kýsa Bir Giriþ

Ben C’ dilini öðrenmeye 1 yýl önce Üniversite’de MS DOS ortamýnda yaptýðýmýz basit matematiksel iþlemlerle baþladým.Gerçektende her programda alýþýla gelmemiþ bir çok komut vardý. Günümüzde kullanýlan C# diline göre çok geliþmemiþ olan bu dile o kadar ýsýnmýþtýk ki artýk uygulamalara yetiþemez olduk. C çok eskiden çýkan bir dil fakat geliþimi ve insanlarýn ona yetiþmesi  çok hýzlý idi. Sýrasýyla C,C++,C# ben buna 3D diyorum yani 3 dev demekle yetiniyorum. C dili bir çok dilin temeli veya üstünde bir dil. Hemen hemen her alanda kullanýlmaktadýr. Mesela Javascript,ActionScript... En önemli olan uygulama alaný ise Windows ve Linux gibi güçlü bir iþletim sistemlerinin C de yazýlmasýdýr. C dilinin uygulama alanlarý sadece saydýklarýmla sýnýrlý deðildir ama bu alanlarýn hepsini burda listelemem mümkün deðildir.

 .NET Framework, programcýlara aþina olduðu kod dilini kullanma özgürlüðü tanýyarak bir devrim gerçekleþtirdi. Ve, belli belirtimlere sadýk kalýndýðý sürece, farklý dillerle yazýlmýþ uygulamalarýn birbiriyle etkileþebileceðinin de teminatýný verdi.

Evet, .NET diller arasý etkileþime olanak tanýyan, bir çok dile destek veren bir platform. Üçüncü parti derleyiciler yazýlarak .NET için her an yeni bir dil daha yazýlabilir. Ama herþeyden önce, .NET'in beraberinde sunduðu dillere bakmak gerekiyor. Bu diller temel olarak 4 tane: C++, Visual Basic .NET, C# ve J#.NET. Dikkat edilirse bu listede, "ben yeniyim" diye göz kýrpan bir tanesi var : C#. Yazýmýzda, bu yeni dili tanýmaya çalýþacaðýz.

C# (si þarp) herkesin dile getirmiþ olduðu gibi C++ ve Java ‘nýn birleþmesiyle oluþmuþtur. Henüz nasýl bir birleþme þekli olduðuna dair tam bir fikrim yok ama C# mükemmel bir kütüphaneye sahip. Bu kütüphaneye ufak bir göz aþinalýðýmýz olacak ama ilerideki yazýlarýmýzda diðer dillerden büyük bir farký olan esnek bir yapýya sahip olmasýný inceleyeceðim. Nedir bu esneklik? Yani Program yazarken "of be bu dilin de bu özelliði yokmuþ" dediðimiz anlar olmuþtur. C ile de þüphesiz nesnel programlama yapabiliriz. Fakat bunu yapabilmek oldukça zordur. C++ ise Nesne yönelimli programlamaya imkan vermekten öte zaten bu paradigmaya göre tasarlanmýþtýr ve yapýsýndaki araçlar sayesinde bunu kolaylaþtýrmýþtýr. Ýþte C- C++ arasýndaki fark bu peki C#'ýn özelliði nedir?

Nesne yönelimli programlamanýn günümüzde ne kadar yaygýn olduðunu programlama ile ilgilenen herkes bilmektedir. Nesne Yönelimli Programlama (NYP) yaklaþýmýnda temel olan prensiplerden birisi bilgi gizleme (information hiding)'dir. Bu prensibi projelerimizde uygulamak için C#'in sunduðu en önemli araçlardan biri olan sýnýf özellikleri (class properties) konusunu inceleyeceðiz.

Bildiðiniz gibi, C# dilinde tasarlanmýþ bir sýnýfta iki temel unsur bulunur. Birincisi sýnýfýn özellikleri (fields), ikinicisi ise sýnýfýn metodlari (methods)'dýr. Herhangi bir sýnýfýn özellikeri sýnýfta tutulan iliþikili verilerlerdir. Diðer taraftan sýnýfýn bizim için deðiþik iþleri yapmasýný metodlarý vasýtasýyla saðlarýz. Sýnýf tasarýmý çok önemli bir iþ olup; deneyim, konsantrasyon ve dikkat ister. Sýnýfýmýzýn özelliklerini tutan veriler, program akýþý sýrasýnda sýnýf dýþýnda deðiþtirilebilir veya bu deðerlere ulaþmak istenilebilir.

Elbetteki C# hakkýnda bilinmesi gerekenler bu kadarla sýnýrlý deðildir. Bundan sonraki yazýlarýmda herþeyi daha ayrýntýlarýyla aktarmaya çalýþacaðým.