29 Eylül 2014 Pazartesi

C# Metotlar

Herkese merhaba bir konu ile yine karşınızdayım.bugün  metotları işleyeceğiz. önce tanımını yapacağız.sonra ne işe yarar ondan bahsedeceğiz çeşitlerini görüp yazım kurallarını anlatıp iki örnek uygulama ile bilgilerimizi pekiştireceğiz.örneklerden ilki basit giriş seviyede mesaj veren  metotken ikinciside biraz daha farklı düşünmemizi sağlayacak nesnel bir örnek olacak

Metot nedir

metot türkçe karşılık olarak yöntem yol usul tarz vs .. anlamına gelmektedir.
örneğin sabah uyanma zorluğu çekiyorsanız gece kurmuş olduğunuz telefonun alarmı uyanma konusunda sizin sıkıntınızı çözen size ait bir yöntem olabilir.programlama dünyasında ise iş parçası diyebiliriz belli miktardaki komutların bir araya gelerek bir işlem yapmasıdır.mesela bir web siteniz olduğunu düşünelim onlarca sayfanız var ve sayfalardaki linklerin renklerini sayfa bazlı manuel ayarlıyorsunuz.bir gün fikir değiştirip diyelim ki renkleri siyahtan maviye çevirmek isterseniz her sayfadaki linklerle tek tek uğraşmak zorunda kalırsınız. ama bastan bir metot yazarsak (web sitelerinde genelde css olur) sadece o metodun kodunu değiştirmekle bu metodu kullanan bütün sayfalardaki renklerini güncellemiş oluruz.

Metot Çeşitleri

 metotlar c# dörde ayrılır bunlar
  1. Yapıcı metotlar( constructor)
  2. Yıkıcı metotlar(destructor)
  3. geriye değer döndüren metotlar(int ,string bool)
  4. değer döndürmeyen metotlar (void)
arkadaşlar yapıcı ve yıkıcı metotları bir baska yazı konusu olarak ele almayı planlıyorum bugun deger  döndüren ve döndürmeyenleri göreceğiz. 

Metot Yazım Kuralları

bir metodun söz dizimi şu şekildedir;

[erişim belirleyicisi],geriye dönüş tipi ,metot ismi ,(parametreler)

kabul ediyorum pekte açıklayıcı olmadı; erişim belirleyicilerden baslayalım.erişim belirleyicisi metoda nasıl ulaşacağımızı gösteren bir yoldur mesela birden fazla windows formunuz var form1,form2 gibi...eğer metodumuz form1 içindeyse  form 2den çağırmak için  erişim belirleycisini public yapmamız gerekir tabi form1 sınıfının yeni bir nesnesini kurmak şartıyla. 

c#de 5 çeşit erişim belirleyicisi vardır;
  1. public
  2. private
  3. protect
  4. internal
  5. internal protect
 biz private ve public konusunu işleyeceğiz.diger özellikleri sınıfları(class) işlerken anlatacağım
public aslında  halka açık umumi olan anlamına gelir. bilgisayar duınyasında ise evrensel  olan dersek  sanırım yanlış olmaz:  ) eğer siz bir metodu public tanımlarsanız baska sınıflardan (mesela formlar) çağırabilirsiniz.şimdilik böyle bilin. private ise daha bir yerel anlamında kullanılır .sadece classınız içinde kullanabilirsiniz.şimdi aşağıdaki  resime alınmış kod blokuna dikkatinizi çekmek istiyorum


 formun load olayı tanıdık geldi degilmi aslında load bir olaydır. ama metotların söz diziminden hic bir farkı yok burada  private  erişim belirleyicimizdir metoda nasıl ulaşacağımızı belirtir ,void metodun dönüş tipini  , form1_load ise ismini temsil ediyor, parantez içindekilerse parametrelerimiz.eger private yazmassak yine sorun çıkarmaz varsayılan olarak  private kabul eder. yani  mesela söyle bir şeyde pekala olabilir.

void benbirmetodum ()
{
}

 gördüğünüz gibi erişim belirleyici yok ayrıca parantezlerimizin içide boş illaki icine parametre yazmak zorunda degiliz. 
dönuş tipi metod ismi ve parantezlerimiz yeterli oluyor bu kadar basit

 peki c# metot nasıl bir şeydir




resimde form1 sınıfımızın ismini yazıp noktaya basınca simgesi küpe benzeyen pembe renkli   bize sunulan şekildir.ayrıca  bu resimde  daire icine alınmıs ve alınmamıs hali ile görüyorsunuz.bu form olsun textbox olsun listbox veya  button olsun hic bir sekilde degişmez yani pembe küptür  aşagıdaki örnek iki bunu doğruluyor



 textbox1'e ait olan metot görünüyor ayrıca dönüs tipide void olan  bir metot uzerine gelince resmi buyultunce cıkan yazıyı daha iyi okuyacaksınız  yazıda textboxbase( yani textbox ana sınıfından türemis)  oldugunu belirtiyor 

peki gelin metotların türlerine bakalım;


 Geriye Deger Döndürmeyen metot ( void) Metotlar


gerçi yukarıda biraz void'ten  bahsettik ama öncelikli olarak geriye deger döndurmeyen metot ne demek ona bakalım.
yine uyanmak icin gece kurmus oldugunuz alarm ornegini verecek olursak alarm zamanı geldiginde ses çıkarmaya baslayacaktır uyanırsınız ve kapatırsınız sonuc olarak görevi statiktir duragındır hep kendini tekrarlar c# ortamına uyarlayacak olursak mesala console uygulamalarında clear methodu vardır ekranı temizler bunun geriye döndurdugu bir sey varmı?dogru cevabı bildiginizi biliyorum.bende sizin gibi dusundum
evet dogru cevap  yok. yada listbox.items.clear() oda liste kutusunun içini bosaltır.yani bize bir sey vermez görevini tamamlar cekilir kenara.kendi metotlarınızı yazmaya basladıgınızda daha anlasılır olmaya baslayacak. şimdi deger dondurmeyen metotla ilgili bir ornek yapalımki biraz daha bilgilerimiz kalıcı olsun


Parametresiz Deger Döndurmeyen Metot Uygulaması

yeni bir windows uygulaması açalım new project  windows form aplication şablonunu secelim


gelen ekranda ok tusuna basalım 

karsşımıza form1 sablonu gelecektir çift tıklayarak formun load olayına gecelim



 çift tıkladıktan sonra geldigimiz yerde formun load alanında yazılan kodları paylasıyorum




 Burada mesajgoster adında bir metot tanımladık metodun parametresi yok yaptıgı  sadece mesjgöstermek  metodu formun loadına koydugumuz için formdan önce mesajı görduk tamam tusuna basınca bos form1
goruntusu gelecek ekranımıza.şimdide aynı örnegi parametreli işleyelim bu sefer sabit mesaj yerine bizim belirledigimiz mesaj gelsin




mesajgoster içinde string bir degişken tanımladık ismini mesaj yaptık formun load olayında metodu cagırınca bizden string bir deger girmemizi istedi şimdi artık biz ne yazarsak onu göruyor olacagız.

Geriye Deger Döndüren Metot ( int,bool,string vs) Metotlar

bir metodun geriye deger döndürmesi ne demektir.aslında deger dondurmeyen yöntemden  yazım olarak cok farkı yok void yerine her hangi bir veri tipi gelir int,string, bool,object gibi  parametreli yada parametre almadan yazılabilir  biz void yerine yazdıgımız herhangi bir  veri tipini return anahtar kelimesi ile   göndeririz  (nereyemi tabi metodu cagıran yere formun loadına buttonun click olayına) yine çok karıştırmadan   günluk yasamdan örnekleyelim. bir çiftcinin tarlada calıstıgını dusunun bu zorlu bir sürectir emek harcar  ter döker alacagı mahsulun tohumlarını ister eli ile eksin isterse teknolojiden yararlansın  (traktör) sonucta önunde birden fazla yol metot yöntem var  (tercih onun karısayamayız degil mi)ama bu metot console.clear() gibi ekranı temizleyip beklemez  zamanı gelince tarladan ürün almaya baslar elinde kullanacagı somut seyler vardır ornegin  tarladan aldıgı domatesleri konserve yapabilir yada satıp ticaret yapabilir peki bumların deger döndüren metotlarla ne alakası var ..işte bu tip metotlarda bizim elimizde kulalnacabilecegimiz sınıf yada veri tipi verirler.deger döndürmeyen metodta direk metodun ismini yazarken  deger dondürenlerde ise donus tipine eşitleriz asagıda resimde  iki metodun farkını görüyorsunuz.

toplam adlı metodumuzun dönüş tipi int olsada this.text string bir özelliktir bunuda tostring metodu ile hallediyoruz. parametre kullanmadıkprojeyi yazının sonunda paylasacagım. şimdide parametreli deger dönduren metoda ait son örnekle konuyu sonlandıralım.

Geriye Deger Döndüren Metot Uygulama

 



 

Gördügünuz gibi dönüş tiplerini int bool char string vermek zorunda değiliz metotlarla işlem yaparken control sınıfları textbox ,button, listbox, veya form ,sqlconnection kısacası c# destekledigi tum tipleri sınıfları kullanabiliriz deger döndurmyen metotlarda ise parametre olarak kullanırız son  göruntumuz textboxun içine merhaba yazılmıs şekilde


 Bir konuyu daha sonlandırdık bir sonraki yazımıza kadar sağlıcakla kalın.eleştiri ve görüşlerinizi eksik etmeyiniz..

metotlar dosyasını indir

1 yorum: