C# Metotlar ve Metot Tanımlama Metot Kavramı : Metotlar bir program içerisinde aynı işi gerçekleştiren satırları belirli düzende sadece bir kez oluşturarak gerektiğinde tekrar tekrar kullanabilmemizi sağlayan alt programlardır. Metotlar sayesinde kod tekrarları yapmadan daha anlaşılır bir şekilde kodlama yapılabilmektedir. Metotlar direk olarak çalışmazlar ancak program içerisinde çağrılarak çalıştırılabilirler. Bir metot bir amacı gerçekleştirmeye yönelik olarak yazılır. Metot içerisinde bir veya daha fazla ifade bulunabilir. Metot Tanımlama Her bir metot tanımlanırken metota bir isim verilir. Metot çağrılırken verilen isim kullanılarak çağrılır. Bazı metotlar dışarıdan değer alabilirler. Dışarıdan gönderilen değerlere parametre denir. Yapılan işlem sonucunda bazı bilgiler metotlar ile metodun çağrıldığı bölüme tekrar gönderilebilir. Bu metotlar geri değer döndüren metotlardır. Metot Tanımlama Şekli : erişimşekli dönüş-tipi metotadi (parametre listesi) //metot içerisinde gerçekleştirilecek işlemler ; Erişim Şekli : Programın diğer bölümlerinden metoda erişilirken bu erişim şeklinin nasıl olacağı bu bölümde belirlenir. Erişim Şekli private, public, static gibi değerler alabilir. private : Bu erişim şekli belirlenen bir metot yalnızca tanımlandığı sınıf içerisinde erişilebilir olacaktır. Sınıf dışından erişim şekli private olan bir metoda erişilemez.
public : Program içerisinde herhangi bir alanda metot çağrılabilmesi için erişim şeklinin public olarak tanımlanması gerekir. static: Metotlar dahil oldukları sınıf adları ile birlikte çağrılabilirler. static olarak tanımlanan bir metot ana programdan ( Main() ) çağrılırken sınıf adını yazmaya gerek yoktur. Dönüş-tipi: Metot geriye bir değer döndüryorsa dönüş tipi geriye dönecek değere uygun veritipi olarak belirlenir (int, string vb.) Eğer metot geriye bir değer döndürmüyor ise dönüş tipi void olarak belirlenmelidir. Metot Adı: Metodun isminin belirlendiği kısıdıdır. Değişken isimlerinde uyulması gerek kurallara metota isim verirkende uyulması gereklidir. Metot isminin yaptığı işe uygun olarak verilmesi gerekir. Parametre Listesi: Eğer metot dışarıdan değer almıyor ise bu kısım boş bırakılır. Metot dışarıdan değer alıyor ise aldıgı her bir değer için uygun veri tipi ve değeri tutacak bir değişken adı verilir. Birden fazla değer gönderilmesi durumunda değerler aralarına virgül (,) eklenerek Ana programda tanımlanan bir metot aynı sınıf içerisinde static olarak tanımlandığında ana programdan metot adı yazılarak çağrılabilir. Metot adının yanında parantez işaretleri unutulmamalıdır. Örnek 1 : Parametresi ve deri dönüş değeri olmayan ekrana yazan Yaz isminde metodu tanımlayınız. Kodu AlKopyalaKodu Yazdır 1. 2. 3. static void Yaz() 4. 5. Console.WriteLine(""); 6. 7. 8. 9. Yaz(): // metodun çağrılarak çalıştırılması 10. Console.ReadKey(); 11. 12. Metot ana programdam direk çağrıldığı için static erişim tipinde tanımlandı. Metod geriye değer döndürmediği için dönüş değeri kısmı void olarak belirlendi. Metot adı Yaz() olarak belirlendi Parametre almadığı için parantez içide boş bırakıldı. Ekran Çıktısı: Örnek 2: Metot program içerisinde defalarca çağrılabilir. Yukarıdaki örnek ana program kısmı aşağıdaki gibi düzenlendiğinde ekrana 4 defa yazacaktır. Kodu AlKopyalaKodu Yazdır 1. 2.
3. static void Yaz() 4. 5. Console.WriteLine(""); 6. 7. 8. 9. Yaz(); 10. Yaz(); 11. Yaz(); 12. Yaz(); 13. Console.ReadKey(); 14. 15. Ekran Çıktısı: Metot 4 kez çağrıldığı için ekrana 4 kez yazacaktır. Derste yapılan uygulamalar //Parametresiz geriye değer döndürmeyen (void) metot static void selam() Console.WriteLine(" Dünya"); Console.WriteLine("Nasılsın Bugün?"); Console.WriteLine("- Ne olsun Yuvarlanıp gidiyoruz."); ///////// //parametreli geriye değer döndürmeyen metotlar static void selamla(int sayi, string adi) for (int i = 0; i < sayi; i++) Console.WriteLine(" " + adi);
selamla(12, "Ahmet"); selamla(5, "Nihat"); selamla(23, "Ali"); ////////////////////// //geriye değer (return) döndüren parametresiz metot static string selamla() string kelime; kelime = "merhaba"; return kelime; Console.WriteLine(selamla()); //////// ////geriye değer döndüren parametreli metotlar static int toplama(int a, int b) int toplam = a + b; return toplam; Console.WriteLine(toplama(34,56)); int sonuc = toplama(3435, 45454); Console.WriteLine(sonuc); //////////// /////Kare alma metot static int kareal(int sayi) return sayi * sayi; int sonuc = kareal(11);
Console.WriteLine("İşlem sonucu =" + sonuc); /////// static void selamla(int sayi, string ad) for (int i = 1; i <= sayi; i++) Console.WriteLine(i + " merhaba " + ad); Console.Beep(5070,550); Console.Beep(2070, 850); Console.Beep(1070, 1050); Console.BackgroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.Red; selamla(2100,"salim"); Console.BackgroundColor = ConsoleColor.Red; Console.ForegroundColor = ConsoleColor.White; selamla(10,"ahmet"); Console.BackgroundColor = ConsoleColor.Blue; selamla(13, "Erdoğan");