Dijital Bir Oyuncak; C#
Yayınlanma Tarihi : 04 Ağustos 2020
Programcılık kariyerimdeki en önemli kazanımım olan C# (okunuşu: si şarp), benim için bir programlama dilinden çok daha fazlası aslında. Html, css, javascript ve sql gibi onu da tasarım ve programlama oyunumun bir legosu, bir k'nex seti gibi görüyorum.
C#, Microsoft firması tarafından geliştirilen ve C dilinin sadeleştirilmiş bir versiyonu da diyebileceğimiz modern, çok amaçlı bir programlama dilidir. C# ile herşey yapılabilir; masaüstü-mobil-web tabanlı oyunlar, her türlü uygulama, web siteleri, web servisleri, hatta fiziksel makineler bile kontrol edilebilir. Günümüzde bir çok alanda oldukça yaygın şekilde kullanılmaktadır.
Bugün yazılım ve programlamaya merakı olan herkesin karşısına C# dışında php, phyton, java gibi birçok alternatif dil çıkmaktadır. Her dilin kendine göre avantajlı ya da eksik görülebilen yanları olsa da hemen hemen hepsiyle istediğiniz herşeyi programlama tecrübeniz ölçütünde yüksek performans ve kararlılıkta inşa edebilirsiniz. Birden fazla dili bilmenin elbette ki faydası vardır, ancak size tavsiyem bunu bir dil üzerinde gerçek anlamda uzmanlaştıktan sonra yapmanızdır. Aksi taktirde birçok dili az bilen ve doğru düzgün iş çıkaramayan bir programcı oluverirsiniz ki bu kendinize yapacağınız büyük bir kötülük olur. Bu tür bir yaklaşımın sonucunda hem programlamadan soğur, hem de birşey beceremiyormuş hissine kapılıp kendinize olan güveni kaybedebilirsiniz. Hayatta öğrenmek dahil herşeyin bir tekniği ve sırası vardır.
C#'ı makaleye girişimde legolara, k'nexlere benzettiğimi söylemiştim. Çocukluğumda oynama fırsatı bulduğum bu oyuncaklar hatırlayabileceğiniz üzere onlarca küçük plastik parçadan oluşuyor ve bunları birbirine oturtarak birşeyler yaratmamıza olanak veriyordu. İşte programlama dilleri de bu oyuncaklar gibi birşeyler yaratabilmemizi sağlayan parçalara (elemanlar, değişkenler, sınıflar, özellik ve methodlar) sahiptir. Bunların ne olduklarını, nasıl kullanıldıklarını ve çalışma mantıklarını öğrendiğimizde gerisi sadece hayal gücümüze kalıyor.
C# kodları herhangi bir metin editörü ile yazılabilse de sonunda bir derleyici tarafından yorumlanması yani makine diline çevrilerek çalıştırılması gerekeceğinden genellikle bu işleri oldukça kolay bir hale getiren ve yine dilin geliştiricisi Microsoft tarafından üretilen Visual Studio adlı program kullanılmaktadır. Visual Studio kod tamamlama ve hata bulma başta olmak üzere birçok özelliği ile aslında C# için kullanılabilecek en iyi editördür. Visual Studio'yu başka bir yazımda detaylı olarak anlatacağım.
Çoğu programlama dilinde olduğu gibi C#'ta da öğrenilmesi gerekenlerin başında "değişkenler" gelir. Değişkenler çeşitli türdeki verileri temsil eden ifadelerdir. Kendilerine atanacak verileri daha sonra kullanılmaları için hafızada tutarlar. Değişkenlerle birlikte namespaceler, nesneler, bu nesnelerin özellik ve metodları ile sınıflar en çok kullanılan yapılardır. Gelecek yazılarımda yavaş yavaş hepsinden detaylıca bahsedeceğim.
Aşağıda C# ile yazılmış küçük bir windows konsol uygulaması örneğini bulabilirsiniz.
//Kullanılacak değişken türleri ve nesnelerin programcı için önceden hazırlanmış referans sınıfları. (Varsayılan olarak Visual Studio tarafından otomatik olarak oluşturulur.)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//Yazacağımız bu örnek konsol uygulamasının kodlarını içeren "Ornek_Uygulama" isimli namespace (ad alanı). (Varsayılan olarak Visual Studio tarafından otomatik olarak oluşturulur.)
namespace Ornek_Uygulama
{
//Uygulamamız "Program" isimli bir sınıfın içinde olacak. (Varsayılan olarak Visual Studio tarafından otomatik olarak oluşturulur.)
class Program
{
//Programı başlatacak, geriye değer döndürmeyen (void), parametre olarak "args" adında metinsel ifade dizisi (string []) alan ve içindeki öğelere burada oluşturulacak başka bir sınıftan da ulaşılabilecek (static) "Main" isimli ana fonksiyon. (Varsayılan olarak Visual Studio tarafından otomatik olarak oluşturulur.)
static void Main(string[] args)
{
//Herhangi bir değer almadan oluşturulmuş, integer (tam sayı) tipindeki a değişkeni.
int a;
//4.8 değerini alarak oluşturulmuş, double (ondalıklı sayı) tipindeki b değişkeni.
double b = 4.8;
//a değişkenine "=" operatörü ile atanan, parametre olarak aldığı sayısal değeri tamsayı tipine dönüştüren "Convert" sınıfının "ToInt32()" adlı metoduna parametre olarak gönderilen ondalıklı (double) türündeki b değişkeni. Ondalıklı kısım 5'ten büyükse değer bir üst tam sayıya, küçükse bir alt tamsayıya çevrilir. Burada a'nın alacağı değer 5 olacaktır.
a = Convert.ToInt32(b);
//"Console" sınıfı ve bu sınıfın parametre olarak aldığı veriyi konsol ekranına yazıp bir alt satıra geçmesini sağlayan "WriteLine" metodu. Metinsel ifade şeklindeki parametre tırnak işaretleri arasında (" ") yazılır. Tırnak işaretleri arasında yazılmayan metinsel ifadeler değişken olarak kabul edilir ve temsil ettikleri değerler yazdırılır. O isimlerde oluşturulmuş değişkenler yoksa veya değerleri atanmamışsa program hata verir. "+" operatörü hem toplama, hem de metin birleştirme görevi yapar.
Console.WriteLine("a + b = "+ (a + b)); //(a + b) burada parantez içine alındığında değeri sayı olarak kabul edilir.
Console.WriteLine("a + b = "+ a + b); //a + b burada parantez içine alınmazsa değeri metin olarak kabul edilir.
//Yine "Console" sınıfının konsol ekranında alt satıra geçip pencerenin program akışı bittiğinde otomatik olarak kapanmasını önleyen parametresiz "ReadLine" metodu.
Console.ReadLine();
}
}
}
Program çalıştırıldığında karşılaşılacak ekran (program çıktısı).