C# dilinde Metotlar

C# dilinde Metotlar

OOP’nin temellerinden biri olan ve kod tekrarını önleyen metotlarla ilgili kodlarımız.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace NetFrameWork.S7.D1.Metotlar {     class Program     {         static void Main(string[] args)         {             Selamla();             Cikis();         }          private static void Cikis()         {             Console.Write("\nÇıkmak için entera basınız...");             Console.ReadLine();         }          static void Selamla()         { //void geriye değer döndürmeyen metodlardır.             Console.WriteLine("Merhaba");         }               } } 
    class Program     {         static void Main(string[] args)         {             Ogrenci ogr = new Ogrenci();             ogr.SelamlaOgrenci();             Cikis();         }          private static void Cikis()         {             Console.Write("\nÇıkmak için entera basınız...");             Console.ReadLine();         }              }      public class Ogrenci     {         public void SelamlaOgrenci()         {             Console.WriteLine("Merhaba Öğrenci");         }     }
    class Program     {         static void Main(string[] args)         {             Ogrenci ogr = new Ogrenci();             ogr.OgrenciMetot1("Tutku","ÇAKIR");             Cikis();         }          private static void Cikis()         {             Console.Write("\nÇıkmak için entera basınız...");             Console.ReadLine();         }             }      public class Ogrenci     {         /*          * Erişim Belirleyicileri          * public : her yerden erişilebilir          * private : sadece class içinden erişebilir          * protected : class katıldığında kullanabilir          * internal : ilgili kütüphane içerisinde metoda erişilebilir          * internal protected : ilgili kütüphane içerisinde veya kalıtıldıysa  metoda erişilebilir          */          public void OgrenciMetot1(string ogrenciAdi,string ogrenciSoyadi)         {             Console.WriteLine("Öğrenci Bilgileri: {0} {1}", ogrenciAdi, ogrenciSoyadi);         }      }

Private methot oluşturalım ve public metot üzerinden başka classta ekrana veri yazdıralım

    class Program     {         static void Main(string[] args)         {             Ogrenci ogr = new Ogrenci();             ogr.OgrenciMetot2();             Cikis();         }          private static void Cikis()         {             Console.Write("\nÇıkmak için entera basınız...");             Console.ReadLine();         }             }      public class Ogrenci     {         private void OgrenciMetot1(string ogrenciAdi,string ogrenciSoyadi)         {             Console.WriteLine("Öğrenci Bilgileri: {0} {1}", ogrenciAdi, ogrenciSoyadi);         }          public void OgrenciMetot2() {             OgrenciMetot1("Tutku", "ÇAKIR");         }      }
 class Program     {         static void Main(string[] args)         {             Matematik mat = new Matematik();             YenidenIslemYap: //goto için label             mat.MenuHazirla();             int kullaniciSecim = int.Parse(Console.ReadLine());             Console.WriteLine("Lütfen 1. sayıyı giriniz:");             decimal kullaniciSayi1= decimal.Parse(Console.ReadLine());             Console.WriteLine("Lütfen 2. sayıyı giriniz:");             decimal kullaniciSayi2 = decimal.Parse(Console.ReadLine());             switch (kullaniciSecim)             {                 case 1:                     Console.WriteLine("Toplama İşleminin Sonucu: {0}", mat.ToplamaIslemi(kullaniciSayi1, kullaniciSayi2));                     break;                 case 2:                     Console.WriteLine("Çıkartma İşleminin Sonucu: {0}", mat.CikartmaIslemi(kullaniciSayi1, kullaniciSayi2));                     break;                 case 3:                     Console.WriteLine("Çarpma İşleminin Sonucu: {0}", mat.CarpmaIslemi(kullaniciSayi1, kullaniciSayi2));                     break;                 case 4:                     Console.WriteLine("Bolme İşleminin Sonucu: {0}", mat.BolmeIslemi(kullaniciSayi1, kullaniciSayi2));                     break;                 default:                     Console.WriteLine("Girilen değere karşılık işlem bulunamadı...");                     Console.WriteLine("Lütfen yeniden deneyiniz...");                     System.Threading.Thread.Sleep(2000);                     goto YenidenIslemYap;             }              Console.WriteLine("\n\n\nÇıkmak için entera basınız...");             Console.ReadLine();                      }     }   public class Matematik     {                 public decimal ToplamaIslemi(decimal sayi1, decimal sayi2)         {             return sayi1 + sayi2;         }          public decimal CikartmaIslemi(decimal sayi1, decimal sayi2)         {             return sayi1 - sayi2;         }          public decimal BolmeIslemi(decimal sayi1, decimal sayi2)         {             return sayi1 / sayi2;         }          public decimal CarpmaIslemi(decimal sayi1, decimal sayi2)         {             return sayi1 * sayi2;         }          public void MenuHazirla()         {             Console.Clear();             Console.WriteLine("***Menu***");             Console.WriteLine("1-TOPLAMA");             Console.WriteLine("2-ÇIKARTMA");             Console.WriteLine("3-ÇARPMA");             Console.WriteLine("4-BOLME");             Console.WriteLine("Lütfen değer seçiniz : ");          }      } 

Bir metoda bazı durumlarda gelen parametre için varsayılan değer belirtebiliriz:

public decimal CarpmaIslemi(decimal sayi1, decimal sayi2=15)

Varsayılan değer atamalarını parametrelerin sonuna almalıyız.

Ref ve Out kullanımı

    class Program     {         static void Main(string[] args)         {             /*              *ref ve out önceki .net framework versiyonlarında 1 fark vardı              * framework versiyonu 7.0 olanlar bu farktan etkilenmeyecek              */             int sayi1 = 0;             degerAta(ref sayi1);             Console.WriteLine(sayi1);              Console.ReadLine();         }          static void degerAta(ref int gelenDeger)         {             gelenDeger = 10;         }              }  //sayi1 ekrana 10 değerini basar...   class Program     {         static void Main(string[] args)         {             /*              *ref ve out önceki .net framework versiyonlarında 1 fark vardı // out kullanırken eski versiyonda değişkene bir sayı bildirmek gerekirdi              * framework versiyonu 7.0 olanlar bu farktan etkilenmeyecek              */             int sayi1; // eski versiyonda int sayi1=0; belirtilmeliydi.             degerAta(out sayi1);             Console.WriteLine(sayi1);              Console.ReadLine();         }          static void degerAta(out int gelenDeger)         {             gelenDeger = 10;         }              }

Params kullanımı

    class Program     {         static void Main(string[] args)         {              Topla(5, 9, 20, 45, 22, 12, 11, 56); // alınan int değerleri parametredeki diziye atanır              Console.ReadLine();         }           static void Topla(params int[] sayilar)         {             int toplam = 0;             for(int i =0; i < sayilar.Length; i++)             {                 toplam += sayilar[i];             }             Console.WriteLine("Toplam: {0}", toplam);         }              }

Metotlara aşırı yüklenme

    class Program     {         static void Main(string[] args)         {             //metotlar aynı isimde ve aynı parametre miktarı istiyorsa int, decimal, string ile farklı kullanımları varsa bunları kullanarak metotlara aşırı yüklenebiliriz.               //decimal toplam = topla(12M, 45M);             //EkrandaGoster(toplam);              EkrandaGoster(topla(12, 33));                      }          static void EkrandaGoster(object o)         {             Console.WriteLine(o.ToString());         }          static int topla(int sayi1, int sayi2)         {             int toplam = sayi1 + sayi2;             return toplam;         }          static decimal topla(decimal sayi1, decimal sayi2)         {             decimal toplam = sayi1 + sayi2;             return toplam;         }          static string topla(string metin1, string metin2)         {             return metin1 + " " + metin2;         }     }

LocalFunctions

class Program     {         static void Main(string[] args)         {             LocalFunctionKullanimi(12, 22);                      }         //bu özellik .net 7.0 ile gelmiştir. Öncekilerde bu özellik yoktur.         static void LocalFunctionKullanimi(int sayi1, int sayi2)         {             //int topla metoduna dikkat! sadece metodun içinden erişilebilir.             int topla(int gelensayi1, int gelensayi2)             {                 return gelensayi1 + gelensayi2;             }              int toplamDeger = topla(sayi1, sayi2);              Console.WriteLine(toplamDeger);          }     }

Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir