NTP C# Dersi 1: Kodlama Yapısı ve Hiyerarşi

Merhaba arkadaşlar. Aslında bu ikinci dersimiz. Ben birinci dersimde C# ile ilgili ön bilgileri vermiştim. O yüzden bu dersimize ufak bir program yazmakla başlayacağız.

Arkadaşlar programlama derslerinde kodlamaya ekrana “Merhaba Dünya” yazan programı yazmakla başlamak bir gelenek haline gelmiştir. Biz de geleneği bozmayacağız ve dersimize ekrana “Merhaba Dünya” yazan programı yazmakla başlayacağız. Bu arada ben editör program olarak Microsoft Visual Studio 2010’u kullanıyorum. Benimle aynı programı kullananlar için bir kerelik konsol projesi açmayı tarif etmek istiyorum. Sıkıcı bulan arkadaşlar direkt “Visual C# (C Sharp)’ın Kodlama Yapısı” başlıklı paragrafı okumakla derse devam edebilirler.

 

Visual Studio Yeni Proje (New Project) Penceresi Özellikleri

File > New > Project (Ctrl + Shift + N) yaparak New Project (yeni proje) penceresini açalım. Pencere görüldüğü üzere üç sütundan oluşuyor. En soldaki yani birinci sütun programlama dili ağacını barındırır, Visual Basic, Visual C# gibi. Buradan bir dil seçildiğinde ortadaki yani ikinci sütunda, seçilen dilin bize sunduğu proje çeşitleri listelenir. Üçüncü sütunda ise orta sütunda bir proje çeşidinin üzerine gelindiğinde 2-3 satırlık bir açıklama görüntülenir. Orta sütunun üstünde iki tane açılır liste kutusu bulunuyor. Sağdaki proje çeşitlerini listeleme ölçütünü belirliyor.

Soldaki ise .Net Framework seçimi yaptığımız liste kutusudur. .NET bir uygulama geliştirme platformudur. C# da bu platformda geliştirilir. Bir uygulamanın bütün makinelerde çalışmasını ve farklılık göstermemesini sağlar. Frameworkler de uygulamanın kullanacağı kütüphaneleri belirtir. Bu şimdilik bizim için önemli değil varsayılan neyse o seçili olarak kalabilir. Üç sütunun altındaki geniş kutu ise projenin temel özelliklerini belirlememiz gereken kısımdır. Bu kısımda uygulamanın adını, projenin kaydedileceği yeri ve projeyi Visual Studio’ya tanıtan solution dosyasının ismini belirliyoruz. Sağdaki iki işaretleme kutularından üstteki işaretlendiğinde solution dosyası ve proje dosyaları ayrı ayrı klasörlenir. İşaretlenmez ise tüm dosyalar tek klasörde tutulur. Alttakini geçiyorum çünkü çok fazla kafa karıştırıcı bir şey. Hali hazırda bir proje açık ise bu kısımda bir tane de açılır bir liste kutusu daha oluşuyor. Bu liste kutusunda iki tane seçeneğimiz var. Ya yeni bir solution dosyası oluşturulabilir ya da yeni proje, açık olan projenin solution dosyasına bağlanabilir.

 

Visual C# (C Sharp)’ın Kodlama Yapısı

Öncelikle bir C Sharp konsol uygulaması açalım. Önümüze çıkan kodların hepsini silelim ve aşağıdaki kodları yapıştıralım. Sonra uygulamayı çalıştıralım (F5).

 

// [-A] : Ekrana “Merhaba Dünya” metnini yazan program.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace yG_CS_Proje1
{
    class Program
    {
        static void Main(string[] args)
        {
            string yazi; // [01]
            yazi = "Merhaba Dünya"; // [02]
            Console.WriteLine(yazi); // [03]
            Console.ReadKey(); // [04]
        }
    }
}
// [01]: “yazi” adında string(dizge) bir değişken/hafıza bölgesi tanımladık.
// [02]: “yazi” değişkenine/hafıza bölgesine “Merhaba Dünya” yazısını yükledik.
// [03]: Console class’ı altındaki WriteLine hazır nesnesinin ilk parametresine yazi değişkenini atadık ve böylece ekrana yazi değişkenindeki değer yazdırılmış oldu.
// [04]: Yine aynı class altındaki ReadKey nesnesini kullanarak konsol penceresinin hemen kaybolmasını engelledik.

Ekrana “Merhaba Dünya” yazısı geldi değil mi ? Dikkat ettiniz mi, kodlar niteliklerine göre renklendirilmiştir. Mavi ile renklendirilmiş kodlar C#’ın temel komutlarıdır. Grimsi açık mavi ile renklendirilmiş kodlar projemize dahil ettiğimiz hazır kütüphanelerin barındırdığı nesnelerdir (class, struct, enum gibi).

Kırmızı ile renklendirilmiş kodlar ise string (dizge (karakter dizisi), metin) değerlerdir. Çift tırnak (“”) ile tanımlanır. Çift tırnak arasında kalan ifade string olarak algılanır.

 

Açıklama Satırları ve Özellikleri

Yeşil ile renklendirilmiş kelimeler programcının açıklama olarak kullandığı metinlerdir. Çift eğik çizgi (“//”) ile tanımlanır. Eğik çizginin başladığı noktadan satırın sonuna kadar metin programa dahil edilmez. Sadece kodların ne işe yaradığı unutulmasın diye alınmış notlardır. İstenildiği kadar not alınabilir, programda yer kaplamaz.

Öncelikle şunu bilmemiz gerekiyor. Kodlamış olduğumuz programımızı çalıştırdığımızda (F5), bir “.exe” uzantılı bir dosya oluşturulur ki bu kodlamış olduğumuz programımızın ta kendisidir. Ve “.exe” dosyasına müdahale edilemez.

İki “.cs” uzantılı bir dosya daha oluşturulur. Bu dosyada ise programımızda daha sonrada değişiklik yapabilmemiz için yazmış olduğumuz C# kodları saklanır. Bu dosyanın formatı metin belgesidir (text). Yani “.txt” (not defteri metin belgesi) uzantılı dosyadan bir farkı yoktur. İşte açıklama satırları bu dosyada saklanır, “.exe” dosyasına eklenmez. Açıklama satırları bu yüzden programda yer kaplamaz. Öte yandan “.cs” dosyamızda tabii ki yer kaplar ama bu önemsizdir. Çift eğik çizgi dışında açıklama yapabilmemize olanak tanıyan bir işaret daha vardır. Egik çizgi ile yıldız karakterlerinin oluşturduğu işaret (“/*”) açıklamanın başlangıcını, yıldız ile eğik çizgi (“*/”) karakterinin yer değiştirmesiyle oluşturulan işaret ile de açıklama satırının sonu tayin edilir. Yani “/*” ile “*/” işaretleri arasına alınan yazı açıklama satırı olarak algılanır.

 

Kodlamadaki Hiyerarşik Düzen ve Temel Operatörler

Renklendirilmemiş kodlar ise yapıların barındırmış olduğu fonksiyonlar, olaylar(event), sabitler ve benzeri metodlar olabileceği gibi C#’da kod hiyerarşisini sağladığımız işaretler de olabilir. Hemen hemen bütün programlama dillerinde kodlama hiyerarşik bir düzen içinde yapılır. Nasıl ki yeni proje penceresini açarken izlediğimiz yol File > New > Project ise kodlamada da aynı yolu izliyoruz. Misal matematiksel fonksiyonları matematik gibi bir class oluşturarak bu class altında kodluyoruz ki kütüphanemizi başka bir programcı kendi projesine çağırdığında fonksiyonlara kolaylıkla ulaşabilsin.

C#’da ne tür bir program yazarsanız yazın. Bir namespace ve class gibi bir yapıyı kodlarınız içermek zorundadır. Çünkü bir nesne (kasıt class, struct, enum vb) namespace içinde, bir metot (kasıt event, int, const vb) ise ancak bir yapı içinde barınabilir. Bu hiyerarşik düzeni namespace > nesne > metot gibi özetleyebiliriz. Bahsettiğimiz bu parçalar arasındaki sınırları, yetkin oldukları alanları blog (“{}”) operatörü ile sağlıyoruz. Yukarıdaki kodlarda görüldüğü gibi blog operatörü parçanın sahip olduğu kodların başlangıcını ve bitişini belirliyor.

C#’ın kodlama ve yapı(kastedilen: namespace, nesne ve metotların tamamı daha sonra bunları detaylı olarak anlatacağım) şeması:

“cins metotadi(cins a, cins b){işler; kodlar;}” gibidir.

Cinsten kasıt parçanın türü yani class, void vs. Metodu oluştururken “()” operatörleri ile, “{}” operatörleri içinde ihtiyacımız olacak değerleri, değişkenleri belirliyoruz. Örnekle açıklamak gerekirse “Console.WriteLine(yazi);” komutunda nasıl ki biz birinci parametreye “yazi” değerini atamışız, biz de buna benzer bir metot oluşturduğumuzda kullanıcıdan parametre atamasını isteyebiliriz. İşte bu parametreleri “()” içinde tanımlıyoruz. Bizim de metodumuz bittiği zaman, başka biri metodumuzu çağırdığında “nesneadi.metotadi(a,b);” şeklinde çağıracaktır. Kısacası metodu oluştururken yapılar arasındaki hiyerarşik konumunu belirlerken “{}” operatörünü, metodu çağırırken ise nokta (“.”) operatörünü kullanırız. Diyelim ki iki tane metot çağırdık bu metotların karışmaması için ise aralarına noktalı virgül (“;”) koyarız. Bu bize bir artı daha getirir, bütün programı tek satırda dahi kodlayabiliriz. Tabii ki açıklama satırlarına dikkat ederek. Bu konuda da “//” yerine “/*” operatörünü kullanırsak bunun üstesinden de geliriz.

Bir dahaki derste yukarıdaki kodları detaylı olarak analiz edeceğiz.

Önerilen diğer yazılar:
NTP C# Dersi 0: Programlama Dili Nedir ?

NTP C# Dersi 2: Nesneler ve Metotların Yapısı

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>