Her Yönüyle ilk C# Programımız

C# dili ortaya çıkalı daha hiç birşey yapmayan varsa ya da birşeyler yapıp da ne yaptığından emin olmayan varsa işte bu yazı tam size göre. Bu yazımızda klasik Merhaba Dünya programımızı yazacağız.Ama programımızı yazarken her şeyi adım adım öğreneceğiz. Unutmayın amacımız burada Merhaba Dünya yazmak değil. :) O halde aşağıdaki programı iyice inceleyin önce, şöyle bir süzün programı yukarıdan aşağıya, fazla detaylara inmeden yazımızı okumaya devam edin;

//dosya adı : Merhaba.cs

using System;

namespace MerhabaDunya

{
    class Sınıf1
    {
        static void Main(string args[])
        {
        Console.WriteLine(”Merhaba Dünya”);
        }
    }
}

Yukarıdaki ilk programımızı incelediğinize göre açıklamalarımıza geçebiliriz. Eğer önceden C++ ve Java ile ilgilenmiş arkadaşlar varsa yukarıdaki kodlar tanıdık gelebilir. Nitekim, her ne kadar Microsoft firması ilk başlarda bunu kabul etmese de C# dili Java ve C++ dillerinin harmanlanmasından oluşmuş bir dildir. Bugün bunu kabul etmeyen yoktur sanırım.

Yukarıdaki ilk programımızın kodunu ben Notepad ile yazdım. Ama kodu derleyip çalıştırmak için bir C# derleyicisine ihtiyacımız olacak. C# derleyicisi Visual Studio.NET ile kurulabileceği gibi www.microsoft.com web sitesinden .NET Framework yazılımını indirerek de kurulabilir. Eğer Visual Studio ortamında çalışıyorsanız yukarıdaki kodları Visual Studio .NET ‘ in sunduğu hazır proje şablonlarından rahatlıkla oluşturabilirsiniz. Visual Studio programını çalıştırdıktan sonra Project->New menüsünden dil olarak Visual C# ve proje şablonu olarak da “Console Application” seçerseniz, main işlevi içindeki kodlar dışındaki yapı otomatikmen oluşturulacaktır.Eğer .NET Framework yapısını kurduysanız Console Ekranından C# derleyicisini çalıştırmalısınız. Komut ekranını yazarak kaynak kodumuzu derleyebilirsiniz.

Şimdi kodlarımızı inceleyelim. İlk satırdaki ifadesi System adlı bir isim alanının kullanılacağını belirtiyor.Peki nedir bu isim alanı(Namespace). İsimalanı kavramı son yıllarda program modüllerinin çok sayıda artmasından dolayı popüler hale gelmiştir. Kolay ve hızlı programlama yapmamızı sağlayan bir takım hazır kütüphaneler her ne kadar işimizi kolaylaştırsa da eğer isimalanları olmasaydı kullanacağımız her kütüphane bizim için işin içinden çıkılmaz bir hale gelebilirdi. Düşünün ki iki ayrı firma iki ayrı sınıf kütüphaneleri oluşturdu ve bu kütüphanelerin içinde aynı isimli birden çok sınıf yapısı var. Eğer biz programcı olarak iki firmanın da kütüphanesini kullanmak istiyorsak her ikisini aynı kod içinde kullanamayız. Çünkü aynı isimli sınıflar derleme aşamasında hata verecektir. Bu durumda yapılması gereken tek şey ya da en etkili yöntem isimalanlarını kullanmaktır. Yani bir sınıfa(class) ulaşabilmek için onun isim alanıyla çağırmak. İsim alanları hiyerarşik yapıda olabilir. Mesela System isim alanının altında başka bir isim alanı onun altında başkaları vs. İşte .NET isimalanı(namespace) hiyerarşisinin en tepesinde bulunan isim alanı System adlı isimalanıdır. En temel işlemlerimiz için bile bu isim alanını kullanmalıyız. Aksi halde programımız çalışmayacaktır. İsimalanlarını kullanmak için isimalanının başına using sözcüğü getirilir.

Soru: System isim alanının içinde Data isimalanında bulunan bir cs adlı sınıfı kullanabilmek için kaynak kodumuza ne eklememiz gerekir.

Cevap : Kaynak kodumuzun en başına aşağıdaki ifadeyi yazmamız gerekir.

using System.Data;

Bildiğiniz gibi C# dili %100 nesne tabanlı bir dildir. Yaptığımız herşey bir sınıf nesnesidir C# dilinde. Nesne olmayan hiçbirşey yoktur. C++ dilindeki main işlevini hatırlarsınız çoğunuz. Programımız c++ dilinde main işlevinden başlar ama main işlevi hiç bir zaman bir sınıf içinde olmamıştır.C# dilinde herşey sınıflarla temsil edildiği için main işlevi de bizim belirlediğimiz bir sınıfın işlevi olmak zorundadır. Yukarıdaki programımızda ifadesi ile programımızda bir sınıf nesnesi oluşturuyoruz. Sınıf1 sınıfının bir işlevi olan main’in elbette eskiden de olduğu gibi özel bir anlamı vardır. Biliyorsunuz ki derleyiciler programın nerden çalışacağını bilmek isterler, aksi halde derleme işleminden sonra “programınız için başlama noktası bulunamadı” hatası alırız. Bu yüzden main işlevi bizim için eskiden de olduğu gibi programımızın başlangıç noktasıdır. Yani biz programda yapmak istediklerimizi main işlevi içinde gerçekleştireceğiz. Sınıf tanımlamalarımızı ise istediğimiz noktada yapabiliriz. Daha öncede dediğimiz gibi isimalanları birçok sınıfın veya tek bir sınıfın oluşturduğu kümedir. Bizim ana programımız da bir sınıf olduğuna göre Class1 sınıfını istediğimiz isimli bir isimalanına sokabiliriz. Yukarıda
yazarak isimalanını başlatıyoruz.

Şimdi main işlevinin içine bakalım, System isimalanında bulunan Console sınıfının bir metodu olan WriteLine() ile ekrana bir string ifadesi yazdırıyoruz. Biz burda iki tırnak ifadesi içinde yazımızı belirtmemize rağmen fonksiyonun kullanmı bununla sınırlı değildir. C# dilindeki fonksiyon aşırı yükleme (function overloading)kullanılarak fonksiyonu birçok parametrik yapıda kullanabilmemiz sağlanmıştır. Fonksiyon aşırı yükleme konusuna bundan sonraki yazılarımızda değineceğimizi belirtelim. WriteLine() işlevinin adından da anlaşılacağı gibi ekrana basmak istediğimiz yazıdan sonra satır atlama işlemi yapar.Bunu test etmek için bir tane “Merhaba Dünya” da siz yazdırın. Göreceksiniz ki siz belirtmemenize rağmen alt alta iki tane “Merhaba Dünya” yazısı çıkacak.

Eğer bu programı yazıp derlediyeseniz ne mutlu size ki C# dünyasına güzel bir adım attınız.

Sefer Algan

Soluk Mavi Nokta

Soluk Mavi Nokta

—————————————————————–

Soluk Mavi Nokta’dan yapılan aşağıdaki alıntı, Sagan’ın önerisiyle, Voyager 1 tarafından 14 Şubat 1990′da çekilen yukarıdaki görüntüden esinlenerek yazılmıştır. Uzay aracı komşu gezegen alanlarını aşıp güneş sistemimizin kenarlarına ulaştığında, mühendisler kendi evi olan gezegene son bir bakış atabilmesi için aracı kendi etrafında çevirdiler. Voyager 1 Dünyamızın bu portresini çektiğinde, evinden yaklaşık 6,4 milyar kilometre uzakta ve tutulum düzleminin yaklaşık 32 derece üzerindeydi. Resmi Güneş’e çok yakın çekmenin bir sonucu olarak, saçılmış güneş ışınlarının ortasında yer alan Dünya, yalnızca küçük bir ışık noktası olarak görülüyor.
—————————————————————–

“Uzayın derinliğinden bu resmi çekmeyi başardık; eğer bu resme dikkatlice bakarsanız, bir nokta görürsünüz. O noktaya tekrar bakın. İşte o nokta burasıdır. Evimizdir. O nokta biziz. Sevdiğiniz herkes, tüm tanıdıklarınız, adını duyduklarınız, gelmiş geçmiş tüm insanlar hayatlarını o noktanın üzerinde geçirdiler. Türümüzün tarihindeki tüm sevinçlerimiz ve acılarımız, kendinden emin bin çeşit inancımız, ideolojimiz ve ekonomik öğretimiz, her avcı ve her yağmacı, her kahraman ve her korkak, uygarlığımızın mimarları ve tahripçileri, her kral ve her köylü, birbirine aşık olan her genç çift, her anne ve her baba, umutları olan her çocuk, her mucit ve her kâşif, ahlak değerlerini öğreten her öğretmen, yozlaşmış her politikacı, her bir “yıldız”, her bir “yüce önder”, her aziz ve her günâhkarın tamamı, işte orada yaşadı. Bir güneş ışınında asılı duran o toz zerreciğinde.

Dünya, dev bir evrensel arenada yer alan çok küçük bir sahnedir. Bütün o komutan ve imparatorların akıttıkları kan göllerini düşünün; şan ve şeref içerisinde, bu noktanın küçük bir parçasında kısa bir an için efendi olabildiler. Bu noktanın bir köşesinde yaşayanların, başka bir köşesinde yaşayan ve kendilerinden zar zor ayırt edilebilen diğerleri üzerinde uyguladıkları zulmü düşünün; anlaşmazlıkları ne kadar sık, birbirlerini öldürmeye ne kadar istekliler, nefretleri ne kadar yoğun.

Bu soluk ışık noktası, bütün o kasılmalarımıza, kendi kendimize atfettiğimiz öneme ve evrende öncelikli bir konuma sahip olduğumuz yolundaki yanlış inancımıza meydan okuyor. Gezegenimiz, çevremizi saran o büyük evrensel karanlığın içerisinde yalnız başına duran bir toz zerreciğidir. İçinde yaşadığımız bilinmezlik ve bütün bu enginliğin içerisinde, başka bir yerden yardım gelip bizi bizden kurtaracağına dair hiçbir ipucu yoktur.

Dünya; şu ana kadar yaşam barındırdığı bilinen tek gezegen. En azından yakın gelecekte, türümüzün göçebileceği başka hiçbir yer yok. Evet, ziyaret ediyoruz. Ama henüz yerleşemiyoruz. Beğenseniz de beğenmeseniz de, şu an için Dünya yaşadığımız yer.

Gökbiliminin alçakgönüllü ve kişiliği geliştiren bir deneyim olduğu söyleniyor. Bana kalırsa, insan kibrinin akıl dışılığını küçük Dünyamızın uzaktan çekilmiş bu görüntüsünden daha iyi gösterebilecek bir şey yoktur. Bu görüntü, bildiğimiz tek evimiz olan bu soluk mavi noktayı birbirimizle daha içten paylaşmamız ve koruyup şefkat göstermemiz gerektiği konusundaki sorumluluğumuzun altını çiziyor.”

Carl Sagan, Soluk Mavi Nokta (Pale Blue Dot), 1994

Merhaba

Merhaba Dünya,