Bu yazımızda Metotların tanımı, metot çeşitleri, metot kullanımlarının nasıl yapıldığını ve bununla ilgili örnekler oluşturacağız. Öncelikle Metot ne demektir? Metot ne işe yarar? sorularının cevaplamaya çalışacağım.
Metotlar belirli işlemleri yerine getiren kod bloklarıdır. Aynı kodların tekrar tekrar kullanılması gereken durumlarda büyük kolaylık sağlamaktadır. Oluşturulan metot, ismiyle çağırılarak içerisinde bulunan kod bloklarının çalıştırılması sağlanır. Metotların yapısı temel olarak şu şekildedir.
Yukarıda görmüş olduğunuz yapıyı biraz inceleyelim. Metotların erişim biçiminin yazılması zorunlu değildir. Yazılmadığı takdirde private olarak kabul edilir. ama istenirse private , public, static vs.. erişim tipini belirleyebilirsiniz.
Geri dönüş tipinin metot tanımlanırken mutlaka belirtilmesi gerekir. Burada metottan geriye herhangi bir değer dönmeyecekse void anahtar sözcüğü kullanılmalıdır. Eğer geriye bir değer döndürülecek ise geri dönecek değerin türü (string, int,double,List<>,vs..) belirtilmelidir. Geriye değer döndüren metotlarda geriye döndürülecek değer return anahtar kelimesiye bildirilmelidir.
Metot ismi ise metodumuza bizim belirleyeceğimiz metodun yapacağı işi kısaca özetleyen bir isim olabilir. Örnek olarak “Temizle”, “AlanHesapla”, “Topla” gibi isimler verilebilir.
Son olarak parametre kısmına gelelim. Bir metot parametreli veya parametresiz olabilmektedir. Eğer metot parametre almıyorsa yani dışarıdan değer verilmeyecekse “( )” parantez açılıp kapatılarak metot oluşturulur.
Görüleceği gibi 4 farklı şekilde metot oluşturup kullanabiliriz.
1.Geriye Değer Döndürmeyen ve Parametre Almayan metotlar.
2.Geriye Değer Döndürmeyen ve Parametre Alan metotlar.
3.Geriye Değer Döndüren ve Parametre Almayan metotlar.
4.Geriye Değer Döndüren ve Parametre Alan metotlar.
Şimdi bu yazdıklarımızı nasıl uygulayacağımıza bakalım. Dikdörtgenin alanını hesaplayan bir metodu 4 farklı şekilde de tanımlayalım.
İlk olarak Geriye Değer Döndürmeyen ve Parametre Almayan Metot Kullanarak Alan Hesabı yapalım.
Metodumuz aşağıdaki şekilde olacaktır. Görüleceği gibi void anahtar sözcüğü kullanılarak metodun bir değer döndürmediğini belirtiyoruz. Bütün işlemler metot içerisinde yapılmıştır.
1 2 3 4 5 6 7 8 9 10 11 | private static void Hesapla() { Console.Write("Kısa kenarı girin :"); int kk=Convert.ToInt32(Console.ReadLine()); Console.Write("Uzun kenarı girin :"); int uk=Convert.ToInt32(Console.ReadLine()); int alan=kk*uk; Console.WriteLine("Alan = {0}", alan); } |
Ana programda ise metodu şu şekilde çağırabiliriz.
1 2 3 4 5 6 7 8 | static void Main(string[] args) { Hesapla(); Console.WriteLine("www.yazilimkodlama.com"); Console.ReadKey(); } |
Kodlarımızın tamamı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Program { private static void Hesapla() { Console.Write("Kısa kenarı girin :"); int kk=Convert.ToInt32(Console.ReadLine()); Console.Write("Uzun kenarı girin :"); int uk=Convert.ToInt32(Console.ReadLine()); int alan=kk*uk; Console.WriteLine("Alan = {0}", alan); } static void Main(string[] args) { Hesapla(); Console.WriteLine("www.yazilimkodlama.com"); Console.ReadKey(); } } |
Şimdi de Geriye Değer Döndürmeyen ve Parametre Alan Metodun kullanımına bakalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Program { private static void Hesapla(int kisa,int uzun) { int alan=kisa*uzun; Console.WriteLine("Alan = {0}", alan); } static void Main(string[] args) { Console.Write("Kısa kenarı girin :"); int kk = Convert.ToInt32(Console.ReadLine()); Console.Write("Uzun kenarı girin :"); int uk = Convert.ToInt32(Console.ReadLine()); Hesapla(kk,uk); Console.WriteLine("www.yazilimkodlama.com"); Console.ReadKey(); } } |
Sırada Geriye Değer Döndüren ve Parametre Almayan Metot var. Kullanımı şu şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Program { private static int Hesapla() { Console.Write("Kısa kenarı girin :"); int kk = Convert.ToInt32(Console.ReadLine()); Console.Write("Uzun kenarı girin :"); int uk = Convert.ToInt32(Console.ReadLine()); int alan=kk*uk; return alan; } static void Main(string[] args) { int sonuc = Hesapla(); Console.WriteLine("Alan = "+ sonuc); Console.WriteLine("www.yazilimkodlama.com"); Console.ReadKey(); } } |
Son olarak Geriye Değer Döndüren ve Parametre Alan Metot kullanarak Alan hesabını yaptıralım. Kodlarımız aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Program { private static int Hesapla(int kisa,int uzun) { int alan=kisa*uzun; return alan; } static void Main(string[] args) { Console.Write("Kısa kenarı girin :"); int kk = Convert.ToInt32(Console.ReadLine()); Console.Write("Uzun kenarı girin :"); int uk = Convert.ToInt32(Console.ReadLine()); int sonuc = Hesapla(kk,uk); Console.WriteLine("Alan = "+ sonuc); Console.WriteLine("www.yazilimkodlama.com"); Console.ReadKey(); } } |
Görüleceği üzere 4 farklı şekilde metot kullanarak aynı işi yapan metotlarımızı oluşturduk. Burada önemli olan bizim için hangisinin kullanımı programımız açısından esneklik sağlayacaktır ve işimizi görecektir? Önemli olan buna karar vermek olacaktır. Programlarımızı derleyip çalıştırdığımızda çıkan sonuçların hepsinde aynı olduğu görülecektir.
Emeğine sağlık..
valla normalde alcağım bilgiyi aldım, basıp geçerdim websitesini, ama burada o kadar iyi açıklanmış ki, yani gelip teşekkür etmek istedim, bir çok kaynak var c# ile ilgili ama bu sayfa gerçekten bir dummy’ye anlatır gibi anlatıyor, çok teşekkürler
arkadaşa kesinlikle katılıyorum. nefis anlatılmış. elinize sağlık.
ÇOKYARDIMCI OLDU ELLERİNİZ SAĞLIK 🙂
teşekkürler hocam metotları böyle sade bir şekilde anlattığın için
Abi ellerine sağlık 🙂
bu kadar açık anlatan bir site yok çok aradaım ordan biliyorum ayrıca yararlı ve anlaşılır bi paylaşım, elinize sağlık.
abi performans ödevi verdi hocamız çok zolanıyoruz yapmakta rica etsek yardımcı olurmusun ??
Merhaba
Ne zaman hangi metotu kullanacağımızı nasıl ayırt edeceğiz. Bir türlü anlamıyorum.
Değişik örnekler inceleyerek uygulamaya çalışırsanız mantık zaman içerisinde oturacaktır.
Paylaşım için teşekkürler.