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
- Yapıcı metotlar( constructor)
- Yıkıcı metotlar(destructor)
- geriye değer döndüren metotlar(int ,string bool)
- 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;
- public
- private
- protect
- internal
- internal protect
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 secelimgelen 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
cok faydalı tesekkurler
YanıtlaSil