TOC

This article has been localized into Turkish by the community.

BAŞLANGIÇ:

Merhaba dünya açıklanıyor

Bir önceki bölümde, ilk C# uygulamamız ile konsola bir takım cümleler yazdırmayı denedik. Amacımız gözle görülür bir sonuç elde etmek olduğu için kullandığımız kodların detayına girmemiştik, işte bu bölümde "Merhaba, dünya!" örneğimizin açıklamasını yapacağız. Örneğimizdeki koddan görebileceğiniz gibi bazı satırlar birbirlerine çok benziyorlar, bu yüzden hepsini gruplara ayıracak ve ayrı ayrı inceleyeceğiz. O zaman koddaki en kısa ve en sık kullanılan karakterlerimizle başlayalım: Süslü parantezler { }. C# programlama dilinde süslü parantezler mantıksal kod öbeğinin başlangıç ve bitiş noktasını belirtmek için kullanılırlar. Bu karakterler sadece C#'ta değil C++, Java ve JavaScript gibi diğer birçok dilde de kullanılırlar. Koddan da görebileceğiniz gibi, süslü parantezler kullanılarak birbiriyle ilişkili satırlar bir arada tutulmuştur. Sonraki örnekler ile bu konuyu daha iyi anlayacaksınız.

Haydi en baştan başlayalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using kelimesi bir anahtar kelimedir ve kullandığınız metin düzenleyicisi (editor) tarafından mavi renkle vurgulanır. using kelimesini bir namespace'i kodumuza dahil ederken kullanırız, namespace (İsim uzayı) ise bir class topluluğudur. Classlar bize bir manada işlevsellik sağlarlar ve Visual Studio gibi gelişmiş bir IDE ile çalışıyorsak, genelde basit bir kodun bölümleri otomatik olarak oluşturulur. Bundan dolayı, Visual Studio bizim için otomatik olarak bir class oluşturdu ve gerekli gördüğü ya da sık sık kullanılacağını öngördüğü namespace'leri kodumuza dahil etti. Bizim örneğimizde, birbirinden kullanışlı 5 adet namespace oluşturuldu. Mesela kullandığımız Console class'ı, otomatik oluşturulan System namespace'inin bir parçasıdır.

Bunun yanısıra, System.Linq gibi kodumuzda kullanmadığımız bir takım namespace'ler de otomatik oluşturuldu, eğer sadelik konusunda çok titiz biri iseniz bu namespace'leri silebilirsiniz, fakat şu durumda pek bir fark oluşturmayacaktır.

Sizin de gördüğünüz gibi, istersek kendi namespace'imizi bile oluşturabiliriz:

namespace ConsoleApp1

ConsoleApp1 namespace'i artık uygulamamızın main (ana) namespace'i oldu ve bundan sonra oluşturacağımız tüm classlar varsayılan olarak onun bir parçası olacak. Tabii ki, isterseniz bunu değiştirebilir ve farklı bir namespace içerisinde yeni classlar oluşturabilirsiniz. Öyle bir durumda, oluşturduğunuz yeni namespace'i using kullanarak uygulamanıza dahil etmeniz gerekecek, tıpkı her namespace'te olduğu gibi.

Sırada, class'ımızı tanımlamak var. C# gerçek bir Nesneye Yönelik programlama dili olduğu için, görevi olan her bir satır yine bir class'ın içinde yer alır. Bu durumda, class kısaca Program'dır:

class Program

Aynı dosya içerisinde bile birden fazla class tanımlayabiliriz. Şimdilik bir tanesi işimizi görecektir. Bir class, içinde birçok değişken, özellik ve metod içerebilir, ileride bu konuyu daha derinlemesine işleyeceğiz. Şimdilik bilmeniz gereken tek şey class'ımız bir adet metod dışında başka bir şey içermemektedir. Şöyle tanımlanır:

static void Main(string[] args)

Bu satır muhtemelen çok karışık bir örnek.Bu yüzden gelin bitlerine bölelim.İlk kelime static.Static anahtar kelimesi bize bu metodun ulaşılabilir olduğunu class ile kanıtlıyor.Ama class'lar hakkında daha fazla bölüm var.

Sıradaki anahtar kelime metodun bize ne döndüreceğini söyler. Örneğin, döndürülen değer bir tam sayı ya da kelime olabilirdi, fakat örneğimizde biz void anahtar kelimesini kullandık, çünkü biz metodumuzun hiçbir şey döndürmemesini istiyoruz (C# dilinde void anahtar kelimesi, hiçbir şey kavramını ifade etmek için kullanılır).

Sıradaki kelime ise metodumuzun ismini belirtir, örneğimizdeki metodumuzun ismi Main'dir. Bu metod, uygulamamızın sözde giriş kapısıdır diyebiliriz, yani yürütülecek ilk kod parçası, bizim örneğimizde ise yürütülecek tek kod parçasıdır.

Metodumuzun ismini de belirledikten sonra, şimdi parantez içerisinde bir dizi parametre (bağımsız değişken) tanımlayabiliriz. Bizim örneğimizde metodumuz args isminde tek bir parametreye sahip. Bu parametremiz string tipindedir, daha doğrusu string dizisi tipindedir, ileride daha fazlasını göreceğiz. Bu konu üzerine bir düşünün, Windows uygulamalarının bir diğer isminin de "isteğe bağlı bir dizi parametre" olduğunu göz önünde bulundurursanız, ne kadar mantıklı olduğunu siz de görebilirsiniz. Bu parametreler, metodumuza cümle stringleri olarak geçecekler.

Hepsi bu. Şu anda ilk C# uygulamamız hakkında temel bir anlayışa hakim olmuş olmalısınız, bununla beraber konsol uygulamasının nasıl çalışacağı ile ilgili temel ilkeleri de öğrenmiş olmalısınız.