Mikail ORAL arkadaşımın yeni açtığı ve yazılım işini öğrenmek isteyenlere hizmet etmek amacı taşıyan www.programlamaogren.com sitesine, Mikail'in ricası üzerine, katkıda bulunmak amacıyla sıfırdan C# hakkında yazılar yazmaya karar verdim. Tabii ki bu yazılar hep burada blogumda da olacaklar. Şimdi yavaştan tanımaya başlayalım c#'ı.
Her şeyden önce C# bir nesne odaklı (object oriented - niye buna nesneye dayalı derler anlamam) programlama dilidir. C programlama ailesinin yapı (grammar) özelliklerini taşır. Her ne kadar Java'ya benzese de - ki zaten C ailesine mensup bir dilin bambaşka olması beklenemez - ciddi farklılıkları vardır. C#'ta her şey nesnedir, ilkel (primitive - int, float,char...) tipler bile "Object" sınıfından türetilmişlerdir. Gözlemlemek isteyenler için bunun en kolay yolu tanımlanan bir değişkenin sonuna "." işareti koyarak tiplerin sahip olduğu metotları gözlemlemektir (Visual Studio'da).
C# rakiplerine göre genç bir dildir, bu onu programcının dil üzerindeki ihtiyaçları bakımından güçlü kılarken, Visual Studiodan ayrı değerlendirmek güç olduğu için (ben de biliyorum Mono'yu) Programcıların alışık olduğu araçların bir kısmını henüz barındıramaması nedeniyle güç kaybeder. Fakat son zamanlarda gerek Microsoft gerekse diğer firmalar tarafından geliştirilen yazılımlarla bu eksiklik hızla giderilmiştir.
Her ne kadar .Net'in ana dili olsa da C# diğer işletim sistemlerine de açıktır. (ECMA standartlarındadır)
C#'ın sağladığı temel özellikler arasında;
Platform bağımsızlığı - sanal makinaya sahip her işletim sistemi C# kodlarını kendi işletim sistemine göre çalıştıracaktır.
Garbage Collector - artık kullanımayan nesneleri bellekten otomatik olarak siler. C++'da bu işlem kullanıcı tarafından yapılmaktaydı.
Tip Güvenliği - bu özellik sayesinde içeriği atanmamış nesneler okunmaz, dizi sınırları aşılmaz, kontrolsüz tip dönüşümleri yapılmaz.
Unsafe kodlar - Java'da olmayan pointer kullanımı C#'da unsafe kodlar yazmak suretiyle geri dönmüştür.
sayılabilir.
C#'ın C ailesinden gelen kullanım kolaylığı Visual Studio denen uzaydan gelme IDE ile birleşince gerçekten bir başlayanın bir daha kolay kolay başka dile geçemeyeceği bir dil ortaya çıkıyor.
C#'a hemen bir göz atmak için burayı ziyaret edin. Kurulumu tamamladıktan sonra, yeni bir konsol projesi açarak, "file - new - project" yolunu izleyin. Buradan ConsoleApplication seçeneğini seçip aynı pencerenin alt kısmında proje adını belirtelim, orneğin "IlkProgram"; sonra bilgisayarınıza şu emri verin:
Console.WriteLine("C#'a başladım !!!");
bu Console sınıfının WriteLine metodunu "C#'a başladım !!!" parametresi ile çağıracaktır. Böyle gözüküyor olması lazım:
namespace IlkProgram
{
class Program
{
static void Main(string[]
args)
{
Console.WriteLine("C#'a başladım !!!");
}
}
}
İşte bu kadar ilk program bitti. Hemen F5'e basıp derleyelim, bazılarınızın, "hemen kapanıyor bu bir sorun olmalı" dediğini duyar gibi oldum, merak etmeyin bir sorun yok. Consol gitmeye istekli bir arayüzdür işi bitince gitmek ister. Bunu durdurmanın birkaç yolu vardır. Bir tanesi için
Console.ReadLine();
yazalım, nereye eklenmesi gerektiğini biliyorsunuz. Artık sizin bir tuşa basmanızı isteyecektir ve siz basana kadar orada duracaktır.
Yazarken farketmişsinizdir siz yazdıkça bir menu açılıp yazabileceğiniz şeyleri listeliyor, bu IntelliSense'dir, çok faydalıdır. Şimdi "System" yazıp "." işareti koyun ve IntelliSense yardımı ile bi gezinin ne sınıflar varmış ne isim uzayları varmış hatta bunların içine de girip metotları görün. Böylece C# ilk başlangıcımızı yapmış olduk. Bunun yanında Intellisense yardımı ile orada olduğunu düşündüğünüz ama ismini bilmediğimiz metotları bulmayı da öğrenmiş olduk zaten fare imlecini üstüne getirdiğiniz zaman Intellisenste bulunan liste elemanları hakkında gerekli açıklamayı alıyorsunuz.