C#.NET Giriş

%100 Nesnel olan C#.NET programlama dilini öğrenerek. Hem windows hemde win form web uygulamarı geliştirmek isteyen kişilere yönelik başlangıç dersidir.

Merhaba Sevgili Okurlar,

Bu eğitim serimde sizlere gelecekte daha da yıldızı parlayacak olan bir programlama dilini anlatacağım. 2010 gibi artık her tarafta C#'ı görmemiz kaçınılmaz olacaktır. Bu yüzden şimdiden C#.NET eğitiminizi sağlam alarak geleceğe dönük yatırım yapabilirsiniz.

Öncelikle belirtmek isterim ki Visual C#.NET zorlu bir yoldur. ASP veya PHP gibi 1 ayda öğrenmeniz çok zordur. Eğer daha önceden bir programlama dilinde nesnel kodlama yapmadıysanız tabi. %100 nesne tabanlı programlama imkânı sunan C#.NET'i çok seveceğinizi, öğrenirken de eğleneceğinizi düşünüyorum. C# ile nesnel programcı olmak istiyorsanız sabırlı ve birazda çalışkan olmanız gerekmektedir.

Eğitim serisi ile ilgili daha öncede açıklama yapmıştım fakat bir kez de burada yenileyeyim. Bu eğitim içeriği C veya C++ ta programlama yapmış kişilere yöneliktir. Ana kitle ise C ve C++'ı bitirmiş ve C#'ı öğrenmek isteyen kişilerdir.

Tabi sadece C++ bilgisi olanlar anlar diye bir şey yok. Eğer daha önceden Java ve benzeri bir programlama dilinde nesnel programlama yaptıysanız, C#'ı anlamakta pek zorlanmayacaksınızdır. Bu ilk set olduğundan yazılımcılar için C#'ı anlatacağım. Daha sonra genişleterek daha alt seviyedeki kişilerinde anlayacağı duruma getireceğim.

Hepinize Başarılar Diliyorum.

Hepiniz daha önceden C ve C++ üzerine programlama yaptığınızdan, ilk bilgi olarak sizlere editör seçimi, derleme v.s. gibi temel konuları aktarmayacağım. Bildiğinizi kabul ederek devam ediyorum.

Henüz daha yeni başlıyorken sizlere bir öneride bulunmak istiyorum. Sanki C++ bilmiyormuş gibi C#'ı kavramaya çalışın. Çünkü arasındaki farklılıklar kafanızı karıştırabilir. Ondan hiçbir konuyu zaten ben C++'tan biliyorum diye atlamayınız.

Bir bilgilendirme daha, ilk aşamada sadece kodlara ve mantığa yoğunlaşmamız için Console Application(Konsol Uygulaması) yazdıracağım. İlerleyen zamanlarda Windows Application(Windows Uygulaması)'da değineceğiz. Ondan dolayı VS.NET'ten New Project oluştururken Console Application'ı seçmeyi unutmayınız.

Şimdi ilk programımızı yazalım ve açıklamamızı yapalım.


class program1



{



Static void Main() // EnterPoint



{



System.Console.Write("Bende C# Öğreniyorum.");



}



}



imdi yukarıdaki kodları açıklayalım. Burada bir hatırlatma yapmak istiyorum. Elimden geldiğince tüm terimler, kodlar, adlar v.s. hepsini İngilizce olarak yazacağım. Çünkü ileride karşınıza bunlar %90 İngilizce olarak çıkacaktır. Bu yüzden ilk defa anlattığım bir kelimenin parantez içerisinde Türkçe karşılığını da yazacağım.

Hatırlatmamızı da yaptıktan sonra şimdi açıklamamıza geçebiliriz. İlk olarak bir class(Sınıf) tanımladık. Çünkü C#'ta yazdığımız programlarda en az bir sınıf olmak zorundadır. Sınıf tanımlamadığımız programlar derlenmezler ve derleme aşamasında hata üretirler.

Buraya değinmişken en basit şekilde class tanımlamayı da göstereyim. Aşağıdaki şekilde C#'ta basitçe bir sınıf tanımlayabilirsiniz.


class Sinif_ismi



{



… // İçerisine yazacağımız kodlar v.s.



}



Bunu da kavradıktan sonra class içerisindeki ilk kod satırımıza bakıyoruz ve bir yorum satırı yazdığımı görüyoruz.

Enterpoint(Giriş Noktası) olarak açıklama yapmışım. C++'tanda bilirsiniz programların bir Main() fonksiyonu programın çalışmaya başladığı noktadır. Eğer belirtmezseniz yine hata alırsınız. Çünkü program nereden başlayarak kodları yorumlayacağını bilemez. C++'a biraz daha değinecek olursak. C++'ta main function(Fonksiyon)'ı asla bir class içerisinde olmamıştır. Ama daha öncede belirttiğim gibi C#'ta yazdığımız bir programda mutlaka bir class olmak zorundadır.

C#'ta tüm satırlar az bir istisna ile ";" ile sonlanır. PHP geliştirici arkadaşlarımızın da aşina olduğu bir işarettir. Şimdi C# ile PHP'yi nasıl ilişkilendirdin diyeceksiniz. Aslında PHP bir web geliştirme dili fakat PHP 5 ile birlikte Java'nın özelliklerini almıştır. Bu Java != JavaScript. İkisi çok farklıdır. Bir biri yerine yazan çok kişi olduğunu gördüğümden belirtmek istedim. Buda bize şu sinyali veriyor. Java'da ileride ASP.NET gibi farklı diller ile geliştirilebilecek. Neyse ikisi çok farklı diller. Syntax'taki ilişkiyi belirtmek istedim sadece.

Sonraki satırdaki kodlarımıza baktığımızda bir takım namespaces(İsim Alanı) içerisine girerek bir ifadeyi kullandığımızı görüyoruz. Bunu biraz açıklayalım. Gerçi .NET geliştiricileri olarak aşinasınıdır ama bir kez daha anlatalım.

System Sınıfı Altında Console class'nın Write Özelliğini kullandık. C#'ta her şey bir sınıf olduğundan. Daha class'lar ile işimiz çok. Bildiğiniz üzere nokta "." 'da bir operatördür ve bize sınıflar arası erişim için dallanma kolaylığını sağlar.

Yazdığımız kodu bir kez daha yazarak şimdi inceleyelim ve havada kalan bilgimiz varsa kavrayalım.


System.Console.Write("Tam OOP'e Geçiyoruz.");



// Bunu şu şekilde de yazabilirdik.



System.Console.WriteLine("Tam OOP'e Geçiyoruz.");



Aralarındaki fark ise biri verdiğinizi, o satıra yazar ve işlemini tamamlayarak durur. Diğeri ise WriteLine(Satır Yaz) dediğimizde, Satıra verdiğimiz değeri yazar ve "n" yapar yani bir alt satıra geçer.

Peki, biz şimdi her ekrana bir şey yazdırmak istediğimizde her seferinde bu kadar uzun bir kod mu yazacağız?


System.Console.WriteLine("SanalKurs.NET");



Hayır. Bunun yerine isim alanlarını programımızın en üstüne ekleyerek altındaki tüm class'lara erişim hakkını kazanmış olacağız.

Bizim buradaki NameSpaces(İsim Alanları)'imiz System olduğuna göre o zaman programımızın en üstüne System namespaces'ini ekleyeceğiz. Programımızda bu değişikliğe göre şu şekilde değişlecektir.


Using System; // System isim alanını ekledik.



// Artık Altındaki tüm class'lara erişebiliriz.



Class Program1



{



Static void Main()



{



Console.WriteLine("HakanDAMAR.Com");



}



}



Console class'ı System namespaces'i içerisinde olduğundan ve System namespaces'ini programımızın en üstüne eklediğimizden artık başına System yazmamıza gerek kalmıyor. Tüm class'larına erişim hakkını kazanmıştık zaten.

Artık ekrana bir şey yazdırmak istediğimizde;


Console.Write("Ne Yapabileceğini Göster!");


Şeklinde kullanabilirsiniz.

Artık ekrana yazı yazdırmayı öğrendik. Peki, kullanıcılar ekrana nasıl yazı girecekler? Bu sefer yine System namespaces'i altındaki Console class'ı bize bu konuda yardımcı oluyor. Console class'nın ReadLine(Satır Oku) üye elamanı bize bu konuda yardımcı olacaktır.

Ekrandan bir değer alacağımızdan ve bu değerinde her şey olabileceğinden dolayı ReadLine() ReadLine("Değer") gibi her hangi bir parametre almaz. Bu yüzden kullanımı en basit olarak şu şekildedir.


sing System;



class program2



{



satatic void Main()



{



Console.ReadLine();



}



}



Ekrana veri girilmek üzere cursor'ü bırakır ve veri girişini bekler. Şimdi öğrendiklerimizi toplu bir örnekte kullanarak pekiştirelim.


using System;



class program3



{



static void Main()



{



Console.Write("Veri Giriniz: ");



Console.ReadLine();



Console.WriteLine("Veri Girişi Yaptınız!");



}



}



Şimdi klavyeden ismimizi yazıp enter'a bastığımızda "Veri Girişi Yaptınız!" Mesajı ile karşılaşmamız gerekmektedir.

Bu makalemde C#.NET'e bir giriş yaptık ve bir takım bilgiler öğrendik. Bir sonraki makalemde Veri Türleri'ne giriş yapacağız.

Son olarak bir şey daha eklemek istiyorum. Visual C#.NET dememin sebebi Windows programlamaya kadar gidip hatta bitirip devam edeceğimizdendir. Yoksa şuan Visual C#.NET uygulamaları henüz yazmıyorum. Şu an yazdıklarımız Console Application(Konsol uygulamlarıdır.)

Bilerek Visual'dan başlamadım pencerenin event'lerine yok butonun rengini verdirmekten daha çok koda yoğunlaşıp dili öğrenmeniz daha hızlı öğrenmeniz için console apps. dan başladım.

Hepinize Başarılar Diliyorum.
  • Etiketler;
Hakan Ayaz Damar
Hakkında bilgi en kısa sürede eklenecektir.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

anlatım tarzınız çok karışık
teseekur ederim hocam
Sevgili qleyp; Baştada belirttiğim gibi C#.NET kolay bir ders değildir. Bu yüzden alt yapınızın sağlam olması şart. Daha önce OOP yaptıysanız bu dersleri anlamakta güçlük çekmeyeğinizi düşünüyorum. Karmaşık gelen kısmı belirtirseniz daha sonraki yazılarda bunuda göz önünde bulundurarak daha ayrıntılı yazmaya çalışırım. Saygılar.
:agla: arkadaşlar zor ama güzel
Yazıda çok sayıda yanlış var. Birisini ben yazayım: Nesnel programcılık kavramı değildir. Nesnel Türkçede daha çok Objektif karşılığı kullanılır. Tabii nesnel'in bir felsefe kavramı olduğunu unutmamak gerek
çok teşekkür ederim hocam emeğinize sağlık
elinize saglık hocam biraz daha acıklayacı olabilirdi
"Bildiğinizi kabul ederek devam ediyorum." pardonda bu nedemek oluyo ben daha önce c ve c++ kullanmadım bilmiyorum sizin görevinizde bize c# en iyi şekilde anlatmak. biliyor herkes die hızlı geçiyorsunuz bence bu yaptığınız yanlış.biz bu sene c# goruyoruz ve c++ hakkında en ufak blgim ble yok ! bndan sonra anlattığınız dersi daha iyi anlatmayı denerseniz sevinirim...
Merhaba, Eğitim serisi ile ilgili daha öncede açıklama yapmıştım fakat bir kez de burada yenileyeyim. Bu eğitim içeriği C veya C++ ta programlama yapmış kişilere yöneliktir. Ana kitle ise C ve C++'ı bitirmiş ve C#'ı öğrenmek isteyen kişilerdir. Saygılarımla. Hakan DAMAR
http://www.sanalkurs.net/forum/aspnet-platformu/microsoft-visual-studionet-2008-t6449.0.html Burayı incelerseniz ilgili bilgiye ulaşabilirsiniz. İyi Çalışmalar.
:sasir: inş. bnde C# öğrencm dersini alıorum ama hala çözemedim visual basic . net daha basit
hocam verdiğiniz ders gösterdiğiniz emek adına teşekkür ederim ama ben de c++ ı çok az bilen biriyim ve bilmiyorum diyelim ben de öğrenmek istiyorum desem biraz daha yardımcı olmayacakmısınız kendim adına deil arkadaşlar için sölüyorumm çünkü bilgi paylaştıkça çoğalır derler ve ben sizin bunu bildiğinizi çok iyi biliyorum Lütfen kızmayınn biraz daha detay anlatırsanız
çok güzl anlatmşsınz saoluon ama C# ta yazlmş gelşmş bi hesap makinesi programı lazm bulabilmiyim acaba yardmcı olurmusunz:sasir:
Tşkrler Algoritma Mantığı Olması Gerekiyor Bence Bu Dili Öğrenmek İsteyenlere .
ARKADASIM BANA ACIL YARDM LAZIM NASIL YARARLANA BILIRIM TESEKKURLER
sevgili üstadlar; windows application olarak programı yazdım (c# da) bug yok çalışıyor.ama nasıl derlicem hep consol uygulamaları için derleyici var piyasada...daha çıtırım yardımcı olabilirmisiniz bi exe sini çıkarsam şunun...
10 Numara hocam ders gayet iyi anladım :)

Yukarı Git