CSharp PDF Kitap

Embed Size (px)

Citation preview

C YE GR

(1)

C# Blmnden herkese merhaba. Bundan byle dzenli olarak bu blmde temelden balamak suretiyle C# ile ilgili bilgiler vermeye alacam. Amacmz belli bir konu sras ile mmkn olduunca sk gncelleyerek bu blm size aktif olarak sunabilmek. Her neyse laf daha fazla uzatmadan ilk makalemize balyalm. Yazlm teknolojilerini takip edenler eminim C# ismini uzun bir sre nce duymaya balamlardr. Peki nedir bu C#? Microsoft'un gelitirdii ve yine Microsoft'a gre Windows letim sisteminden sonra BT sektrndeki en byk gelime olan ve yatrmlarnn %80' nini bu almalara ayrd .NET 'in bir paras. Yada yle diyelim. .NET'in resmi dili. Dinamik sayfalar ile birlikte internet zerindeki web siteleri programlanabilir ekranlar halini ald. Bu sayfalar asp,php gibi bir takm dillerle hazrlyabiliyorduk. zellikle JAVA ile birlikte daha kompleks, daha ciddi servisler hazrlanabilir hale gelmiti. te bu noktada Microsoft tarafnda .Net Framework Beta Piyasaya srld. (u anda benim kullandm Beta2 versiyonu) Farkl modllerden meydana gelen bu rnn bir parasnda C# oluturdu. C# haricinde Visual Studio.NET aracl ile, gelimi baka diller ilede bu servisler gelitirilebilir. rnein Dnya zerinde en ok bilindii ve kullanld sylenen VBasic yada ok gl bir dil olan C++. Peki madem yleyse niye C#. Nedeni u; C# .NET Framework ile sfrdan yaratlm bir dil. Dolaysyla .Net'in btn zellikleri ile uyumlu alabiliyor. Ayrca tam anlamyla Object Oriented bir dil. Nesneye ynelik programlamann getirdii btn avantajlar bnyesinde barndryor. Temelde Syntax' Java'ya ok benziyor. C++ ve Java ile uraanlarn bu dile kolayca adapte olacan dnyorum. Ben bu sayfalarda hazrladm kodlar Visual Studio.NET' ile hazrlyorum. Eer sizin byle bir imkannz yok ise Microsoft'un sitesinden Framework SDK y indirerek(Yanlz yanlmyorsam 110 MB civar.) bu uygulamalar gerekletirebilirsiniz. C# ile ilgili bu ksa n bilginin zerine yine ksa bir kod ile bu makalemize burada son verelim.

class IlkKod { public static void main() { Console.WriteLine("Bir Sonraki Yazida Gorusmek Uzere"); } }

Boran

1

C DEKEN VE METHOD TANIMLARI (2)Bu makalemizde C#' ta deiken ve method tanmlama ilemleri zerinde duracaz. Deiken tiplerini tanyp kullanm ekillerine baktktan sonra Method tanmlama yntemlerini inceleyeceiz. Ardndan deikenlerin kullanm yerlerine gre oluturduu farkllklar inceleyerek yazmza son vereceiz. DEKEN TANIMLAMA -Aadaki satrda integer tipte bir deiken tanmlanyor ve deikenin ad belirtiliyor. -kinci satrda ise tip ve deikenin ardndan initializasyon ilemi gerekletiriliyor. int i; //Deiken Tipi ve Deikenin Ad veya int i=0; //Deiken Tipi - Deikenin Ad - Deeri -Ayn ilem string tipte bir deiken iinde tekrarlanabilir. string ad; //Deiken Tipi ve Deikenin Ad string ad="AHMET"; //Deiken Tipi - Deikenin Ad - Deeri Burada bir hatrlatma C#' ta byk kk harf ayrm vardr. Yani; string ad; ile string Ad; farkl deikenlerdir. Ayrca her satrdan sonra (Method ve Koul tanmlanan satrlar hari) noktal virgl konulmaldr. imdide baz deiken tiplerinin zelliklerine bir bakalm.

Tipi Byte Char

Uzunluu 0-255 -

Double Float int long short -2.147.483.648 ile 2.147.483.647 arasnda 9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 -32.768 ile 32.767 arasnda

Boyutu 8 Bit integer 16 Bit character 15-16 digits 7 digits 32 Bit integer 64 Bit integer 16 Bit integer

METHOD TANIMLAMA e bir nceki makalede yazdmz rnekle balyalm.

class IlkKod { public static void main() { Console.WriteLine("Bir Sonraki Yazida Gorusmek Uzere"); } }

Boran

2

public static void main() satrna bakacak olursak. Burada bir method tanmlama sz konusu. Yanlz bu main() isimli zel bir method. Tpk C ve JAVA' da olduu gibi. Biraz aklayacak olursak eer her hangi bir uygulamada main() isimli bir method varsa ilk nce o icra edilir. Yani uygulama ilk nce bu method iindeki ilemleri yaparak almaya balar.class Test { public static void main() { Console.WriteLine("Bir Sonraki Yazida Gorusmek Uzere"); } public void EkranaBas() { Console.WriteLine("Bu Mesaj Gremiyeceksiniz.") } }Bu yeni kodumuzda ise, Test isimli class' mza ekledik.

EkranaBas() isimli yeni bir method

Bu method iinde, ekranda gstermesi amacyla Console.WriteLine zelliini kullanarak bir mesaj yazdk.Yanlz bu mesajn ieriine dikkat ederseniz mesajn ekrana baslmayacan grebilirsiniz. Bunun nedeni methodun arlmamas. Bu kod icra edildiinde sadece main methodu iinde belirtilen mesaj ekrana baslacaktr. imdi Yukardaki kodu biraz daha geniletelim.

class Test { public static void main() { Console.WriteLine("Bir Sonraki Yazida Gorusmek Uzere"); Test baglan = new Test(); baglan.EkranaBas(); } public void EkranaBas() { Console.WriteLine("Mesaj Artk Grebilirsiniz.") } private void Deneme() { Console.WriteLine("AspNedir.com") } }Evet new keyword'u aracl ile Test class'na ait bir baglan nesnesi oluturduk ve EkranaBas() methodunu ardk. Yanlz burada Deneme() isimli bir method daha var. EkranaBas ile Deneme isimli iki method'a biraz dikkat edicek olursak tanmlama esnasnda farkllklarnn olduunu grebiliriz. EkranaBas methodu

public

ile balarken Deneme methodu arlabilir.

private ile balyor. Aradaki fark: PUBLIC: public ile balyan methodlar dardan (yani baka bir class'n iinden) PRIVATE: private ile balyan methodlar ise sadece bulunduu class iinde

arlabilir.

Eer bu iki kavram kafanz kartrdysa ok zerinde durmayn. Bir sonraki makalede

Boran

3

daha ayrntl bir ekilde aklamaya alacam. imdi birazda deikenlerin method lar iinde nasl kullanldklarna ve nasl sonular verdiklerine bakalm.

class Test { string yer="class deikeni"; public static void main() { string yer="method deikeni"; Console.WriteLine(yer); Test baglan = new Test(); baglan.EkranaBas(); } public void EkranaBas() { Console.WriteLine(yer); }

}

Bu uygulamada yer deikeni string tipinde olup iki farkl yerde tanmlanarak yine iki farkl yerde ierii ekrana baslmaktadr. imdi; method iinde tanmlanan deiken sadece o method iinde geerlidir. Yani main methodu iindeki mesajda ekrana Method Deikeni yazlacaktr. Ancak EkranaBas() method'unda ise ekrana Class Deikeni mesaj kacaktr.Bunun nedeni EkranaBas methodu iinde yer diye bir deiken tanml olmad iin derleyici bu deikeni gidip class'n altnda aryacaktr. Bu yazmzda yukardaki sorulara cevap aryacaz. Konuyu kavryabilmeniz asndan bir nceki makaleyi ("C#'da Deiken ve Method Tanmlamak") okumanz tavsiye ederim.

FONKSYONLAR

(3)

class AspNedir { public static void main() { AspNedir baglan = new AspNedir();//baglan nesnesi oluturuluyor. int donendeger = baglan.Carp();//baglan nesnesi aracl ile Carp Fonksiyonu arlyor. Console.WriteLine(donendeger);//Sonu ekrana Baslyor } public int Carp() { int sayi1 = 2; int sayi2 = 7; int sonuc = sayi1*sayi2; return sonuc;//sonuc deikeninin ierii kendisini arana dndrlyor. } }

Boran

4

lk fonksiyon rneimizi bitirdik. imdi kodumuzu bir inceleyelim. Carp() isimli fonksiyon, public ve integer tipte. Yani bu fonksiyon dardan arlabilir ve kendisini aran Method yada Fonksiyona integer tipinde bir deer dndrr. Bu dndrme ileminide return ifadesiyle yaparz. Bu rnee gre fonksiyonun ksa bir tanmn yapacak olursak. Fonksiyon: Eer yazdmz kod blou geriye bir deer dndryorsa fonksiyondur. Dndrmyor ise fonksiyon deil Method' dur.

class AspNedir { public static void main() { AspNedir baglan = new AspNedir(); int donendeger = baglan.Carp(3,7); Console.WriteLine(donendeger); } public int Carp(int sayi1, int sayi2) { int sonuc = sayi1*sayi2; return sonuc; } }Yukardaki rnekte grld gibi dilersek bir Fonksiyona dardan deer gnderip, bu deerleri ilemesini salyabiliriz.

ARRAY'LERclass AspNedir { public static void main() { int[] myArray={1,2,3}; Console.WriteLine(myArray[0]); Console.WriteLine(myArray[1]); Console.WriteLine(myArray[2]);

}

}

Yukardaki rnekte integer tipte bir dizi tanmlayarak deer atamalarn yaptm. Aadaki rnekte ise bu sefer iki boyutlu olan yine integer tipte bir array tanmladm ve For dngsn kullanarak dizinin deerlerini atadm.

using System; public class Merhaba { int[,] myArray; // ki boyutlu bir dizi tanmladk. public static void Main() { Merhaba baglan = new Merhaba();

Boran

5

}

baglan.EkranaBas();

public void EkranaBas() { myArray = new int[3,3]; // Dizinin Snrlarn Belirledik // For dngleri ile dizi elemanlarnn ieriini girip ekrana basyoruz. for(int i=0 ; i -1) // Seili Eleman varsa { ListBox2.Items.Add(ListBox1.Items[ListBox1.SelectedIndex].Text); ListBox1.Items.Remove(ListBox1.Items[ListBox1.SelectedIndex].Text); } }

ListBox2'de seili bir eleman olup olmadn "SelectedIndex" zelliinden yola karak kontrol eder eer seili eleman var ise veriyi Listbox1'ye aktarr. private void Button3_Click(object sender, System.EventArgs e) { if (ListBox2.SelectedIndex > -1) { ListBox1.Items.Add(ListBox2.Items[ListBox2.SelectedIndex].Text); ListBox2.Items.Remove(ListBox2.Items[ListBox2.SelectedIndex].Text); // ListBox2.Items[index].text gibi bir ifadede index deeri, bilginin // liste kutusundaki yerini verir ve bu numaralandrma btn C# // ilemlerinde olduu gibi 1 ile deil 0 ile balar } }

Boran

69

For Dngs ile ListBox1'deki btn elemanlar ListBox2'ye tayoruz ve ardndan ListBox'n Clear() metodunu kullanarak ListBox1'i temizliyoruz... private void Button4_Click(object sender, System.EventArgs e) { for (int i = 0 ;i