İlginizi Çekebilir
C# Öğrenmeye Başlıyoruz
featured
  1. Ana Sayfa
  2. C#
  3. C# Metot Nedir?

C# Metot Nedir?

Bu yazı içerisinde C# Metot nedir, C# metot örnekleri ve metot türlerine değineceğimiz başlıklar sizleri bekliyor olacak. Kullanıldığı zaman programlara esneklik ve işlevsellik kattığını düşündüğüm kod yapılarının başında gelen metot kavramına birlikte örnekler oluşturarak metot kavramını öğreneceğiz.

C# Metot Nedir?

Yapacağımız uygulama içerisinde bölümlere, kendi içerisinde küçük parçalara ayrılarak oluşturulan ve sonradan çağırılma amacı ile kullanılabilen kod satırları olarak C# Metot Nedir sorusuna basit bir tanım yapabilirim. Metotlar, programlarımız için esneklik sağladıklarının yanı sıra, sürekli aynı kod satırlarını tekrar etmemizin önüne geçmektedir. Bu işlemi basit bir sözel örnek ile açıklayayım. Bir uygulamamız içerisinde her işlem gerçekleştirildiği zaman bir mesaj penceresi çıktısı vermek isteyebiliriz. Bunun için tekrar tekrar her işlem sonunda çeşitli kod satırlarını yazmaktansa bir metot tanımlayarak sadece ilgili metot çağrılarak işlem gerçekleştirilebilir.

Peki, biz bu C# Metot nedir sorusuna cevabı bulduğumuzu düşünüyoruz ama daha nasıl tanımlayacağımız hakkında bir fikrimiz yok diyorsanız onu da aşağıdaki C# Metot Oluşturma başlığı altında göreceğiz.

C# Metot Oluşturma

Bu işin uyulması gereken basit bir formülü bulunuyor bu formül ise şu şekildedir: Erişim Seviyeleri + Dönüş Tipi + Metot adı ve oluşturacağımız metot için bir parametre tanımlaması yapacaksak en son olarak bir parametre belirleyebiliriz.

Programlama dillerinde metotlar
Metotlar’da Erişim Seviyesi
  • Erişim Seviyesi Nedir?

    İlerleyen konularımız içerisinde sıklıkla bahsedeceğimiz erişim seviyelerinin bir ön tanımını programlarımız içerisindeki verilerin güvenliğini sağlamak için bazı erişim seviyeleri kullanmamız gerekiyor olarak yapsak bu aşama için yeterli olacaktır.
    Yukarıdaki kısımda göreceğiniz görselde olduğu gibi dört adet erişim seviyemiz bulunuyor ve bu erişim seviyelerine erişim sağlamanın ne kadar kolay veya zor olduğunu yukarıda bulunan ilgili görsel üzerinden gözlemleyebilirsiniz.

  • Dönüş Tipi Nedir?

    Oluşturmuş olduğumuz metot türlerini konun devamı içerisinde daha detaylandıracak olsam bile dönüş tiplerini metotlarımızın içerisinde dönecek değerin veri tipi olarak bilebiliriz. Bu veri tipleri int, string, double, object gibi veri tipleri alabilecekleri gibi eğer geriye herhangi bir değer döndürme işlemi gerçekleştirmeyecekse, void olarak dönüş tipi belirtilir.

  • Parametre Listesi

    Metot türleri konusuna geçeceğimiz zaman göreceğiniz üzere metotlar bazı parametreleri alarak o değerleri kullanabiliyor. Bu metot türlerine ve parametre listelerine C# Metot Türleri başlığı altında daha detaylı bahsedeceğim.

C# Metot oluşturma için vermiş olduğum formülü kullanarak basit bir metot tanımlaması oluşturabiliriz fakat hangi işlem için nasıl C# metot oluşturma yapacağını öğrenebilmek için metot türlerine göz atmamız gerekmektedir.

C# Metot Türleri

Metot kavramını daha iyi anlayabilmek için öncelikle kullanılan C# metot türleri hakkında bir fikrimizin olması gerekmektedir. Bu temel metot türlerini alt başlıklar halinde anlatımını gerçekleştireceğim. Bu gerçekleştireceğim anlatımlar sizlere teorik bilgi sağlarken, konu anlatımı içerisinde vereceğim örnekler ile pratik kullanım şekillerini de gözlemleyebileceksiniz.

C# Metot Türleri Nelerdir?
C# Metot Türleri

Yukarıda göreceğiniz görsel üzerinde metot türlerini 2 ana başlık altında inceleyeceğimizi görebilirsiniz. İlk başta bu başlıklardan parametresiz metotları ele alarak konu işleyişimize devam edelim.

Parametresiz Metotlar

C# parametresiz metotlar tanımlanırken herhangi bir parametre değerine bağlı olmadan içerisinde bulunan kod parçalarının çalıştırılmasına imkan veren metot türleridir.

Geriye Değer Döndüren Metotlar

Aldığı isimden anlaşılacağı üzere işlem sonucunda sahip olduğu veri tipinde bir değer döndüren metot türüdür. Geriye değer döndüren metot örneğini kullanıcıdan alacağımız ‘string’ veri tipinde değerleri alarak geriye çıktı vermesini istediğimiz zaman yazacağımız kod dizisi şu şekilde olacaktır;

namespace Metotlar
{
    class Program
    {
        static void Main(string[] args)
        {
            // Değişken Tanımlaması:
            string ayrac = new string('-', 20);
            int a = 50, b = 100;
            // Metot Tanımlaması:
            int geriyeDegerDonduruyorum()
            {
                return a += b;
            }
            // Metot Çıktısını Görelim:
            Console.WriteLine(ayrac+"\n-> Merhaba!\n-> A({0}) += B({1}) işlem sonucunda yeni A değerimiz {2} olur.\n{3}",a,b,geriyeDegerDonduruyorum(),ayrac);
        }
    }
}

Kod Çıktısı:

C# Parametresiz Metot Örneği
C# Parametresiz geriye değer döndüren metot

Oluşturmuş olduğumuz bu int veri tipinde geriye değer döndüren parametre almayan bir metottur. Biz bu tür geriye değer döndüren metotları kullanırken return anahtar sözcüğünü kullanmamız gerekmektedir.

C# Veri tipleri konusunda kendinizi eksik hissediyorsanız öncelikle bu konuda hazırlamış olduğum içeriğe göz atmanızı öneririm.

Geriye Değer Döndürmeyen Metotlar

C# Metot türleri başlığı altında void metotlar olarak da bilinirler. Bu metot içeriğinde geriye değer döndüren metotlarda olduğu gibi return anahtar sözcüğü kullanılmaz. Genellikle bir işlemi çalıştırmak, bir işlemi defalarca yazdırmak yerine tek bir metot aracılığı ile yazdırmak istediğimiz zaman kullanırız.

Parametre Alan Metotlar

C# Parametre Alan Metotlar, kullanmaları için metot oluşturulurken parametre tanımladığımız zaman, oluşturduğumuz metot içerisinde tanımlanan parametre kullanılarak kod dizilerinin çalıştırılmasını sağlayan metot türüne denir.

Geriye Değer Döndüren Parametreli Metotlar

Parametre almadan geriye değer döndüren metotlardan pek farkı yoktur. Oluşturduğumuz veri tipinde ve tanımladığımız parametreleri kullanarak geriye bir değer döndürmeyi sağlayan metot türüne C# geriye değer döndüren parametreli metotlar denir. Bu konu için örneğimizi şu şekilde gerçekleştirebiliriz:

namespace Metotlar
{
    class Program
    {
        static void Main(string[] args)
        {
            // Değişken Tanımlaması:
            string ayrac = new string('-', 20);
            int x, y;
            // Metot Tanımlaması:
            int toplamaYap(int ilkdeger, int ikincideger)
            {
                return ilkdeger + ikincideger;
            }
            // Metot Çıktısını Görelim:
            Console.Write(ayrac + "\n-> İlk Değeri Girin: ");
            x = Convert.ToInt32(Console.ReadLine());
            Console.Write("-> İkinci Değeri Girin: ");
            y = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(ayrac + "\n-> X({0}) + Y({1}) işlem sonucu {2} oluyor.\n{3}", x, y, toplamaYap(x, y),ayrac);
        }
    }
}

Kod Çıktısı:

C# Parametreli Metot Örneği
C# Parametreli geriye değer döndüren metot

Bu örnek üzerinde kullanıcıdan klavyeden iki adet değer int veri türünden değer girmesini istiyoruz. Girilen ilk değer ile ikinci değerleri toplatarak işlem sonucunu geriye döndürüyoruz.

Geriye Değer Döndürmeyen Parametreli Metotlar

Bu işlemleri ilerleyen zamanlarda birlikte programlar oluştururken bize işlem sonucunda bazı bilgi, hata veya uyarı mesajlarını konsoldan çıktı olarak vermesini istediğimiz zaman kullanabiliriz. Bu işlemi daha iyi görebilmek için programımız üzerinde giriş yapan kullanıcı hakkında konsol ekranında bize bilgi çıkışı gösterecek örnek bir metot tanımlaması gerçekleştirelim.

namespace Metotlar
{
    class Program
    {
        static void Main(string[] args)
        {
            // Değişken Tanımlaması:
            string ayrac = new string('-', 20);
            // Metot Tanımlaması:
            void consoleLog(string kullaniciAdi)
            {
                string tarihVerisi = DateTime.Now.ToString();
                Console.WriteLine(ayrac + "\n< Console Log Sistemi >\n"+ayrac+"\n-> İşlemi Gerçekleştiren: "+kullaniciAdi+"\n-> İşlem Tarihi: "+tarihVerisi+"\n"+ayrac);
            }
            // Metot Çıktısını Görelim:
            consoleLog("Emre");
        }
    }
}

Kod Çıktısı:

C# Parametreli Geriye Değer DöndürmeyenMetot Örneği
C# Parametreli geriye değer döndürmeyen metot

Metotlarda Aşırı Yükleme (Overloading)

Nesneye yönelik programlama (görsel programlama) konu başlı altında sıklıkla karşılaşacağımız overloading kavramına C# Metot Nedir konumuz içerisinde basit bir giriş yapmak istiyorum. Her tanımlanan metot yapısı içerisinde farklı işlemlere sahip olurken aynı isimlere ait metot tanımlaması yapmak isteyebiliriz. Bu işlemi bir toplama metodunu ele alarak incelersek 2 parametre, 3 parametre ve 4 parametre gibi artan parametreler alabilir ama temel olarak metot içerisindeki işlemler aynı olabilir. Bu işlem için metotlarda aşırı yükleme uygularız.

namespace Metotlar
{
    class Program
    {
        private static int toplamaIslemi(int a, int b)
        {
            return a + b;
        }
        private static int toplamaIslemi(int a, int b, int c)
        {
            return a + b + c;
        }
        private static int toplamaIslemi(int a, int b, int c, int d)
        {
            return a + b + c + d;
        }
        static void Main(string[] args)
        {
            // Değişken Tanımlaması:
            string ayrac = new string('-', 20);
            // Metot Çıktısını Görelim:
            Console.WriteLine(ayrac + "\n1-> 2 Parametreli toplamaIslemi(20,25) Sonucu: " + toplamaIslemi(20,25)+"\n2-> 3 Parametreli toplamaIslemi(20,25,45) Sonucu: "+toplamaIslemi(20,25,45)+"\n3-> 4 Parametreli toplamaIslemi(20,25,45,90) Sonucu: "+toplamaIslemi(20,25,45,90)+"\n"+ayrac);
        }
    }
}

Kod Çıktısı:

C# Metot Overloading
C# Metot aşırı yükleme örneği

C# Metot Örnekleri

C# Metot Örnekleri başlığı altında C# Metot Nedir konu içeriğinde bu başlığa kadar gördüğümüz metotları kullanarak bir örnek oluşturalım. Bu örneğimiz üzerinde bazı işlemleri gerçekleştirecek metotlar oluşturarak kullanıcıdan çeşitli değerler alarak ekran çıktıları gösterelim.

namespace Metotlar
{
    class Program
    {
        // Değişken Tanımlaması:
        static string ayrac = new string('-', 20);
        static void Main(string[] args)
        {
            menu();
        }
        public static void menu()
        {
            string kararVer;
            Console.Write("{0}\n-> Hoşgeldiniz!\n{1}\n< Yapacağım İşlemler >\n{2}\n1-> Hesap Makinesi\n2-> Parametreli Teklik Çiftlik Kontrolü\n{3}\n-> Yapacağınız İşlem:", ayrac, ayrac, ayrac,ayrac);
            kararVer = Console.ReadLine();
            switch (kararVer)
            {
                case "1":
                    hesapMakinesi();
                    break;
                case "2":
                    Console.Clear();
                    int deger;
                    Console.WriteLine("{0}\n-> Sorgulamak İstediğiniz Değeri Girin: ", ayrac);
                    deger = Convert.ToInt32(Console.ReadLine());
                    Console.Write(ayrac + "\n" + tekCiftKontrol(deger)+"\n"+ ayrac);
                    break;
            }
        }
        public static void hesapMakinesi ()
        {
            Console.Clear(); // Konsolu Temizlemek İçin
            string kararVer;
            int ilkdeger, ikincideger;
            Console.Write("< Hesaplama İşlemlerim >\n{0}\n[1] - Toplama İşlemi\n[2] - Çıkartma İşlemi\n[3] - Bölme İşlemi\n[4] - Çarpma İşlemi\n{1}\n-> Yapacağınız İşlem: ",ayrac,ayrac);
            kararVer = Console.ReadLine();
            if(kararVer.Equals("1") || kararVer.Equals("+"))
            {
                Console.Write("{0}\n-> İlk Değeri Girin: ",ayrac);
                ilkdeger = Convert.ToInt32(Console.ReadLine());
                Console.Write("-> İkinci Değeri Girin: ");
                ikincideger = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(ayrac);
                Console.WriteLine("[{0} + {1}] İşlem Sonucu: {2}\n{3}",ilkdeger,ikincideger,(ilkdeger + ikincideger),ayrac);
            }
            else if(kararVer.Equals("2")|| kararVer.Equals("-"))
            {
                Console.Write("{0}\n-> İlk Değeri Girin: ", ayrac);
                ilkdeger = Convert.ToInt32(Console.ReadLine());
                Console.Write("-> İkinci Değeri Girin: ");
                ikincideger = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(ayrac);
                Console.WriteLine("[{0} - {1}] İşlem Sonucu: {2}\n{3}", ilkdeger, ikincideger, (ilkdeger - ikincideger), ayrac);
            }
            else if(kararVer.Equals("3") || kararVer.Equals("/"))
            {
                Console.Write("{0}\n-> İlk Değeri Girin: ", ayrac);
                ilkdeger = Convert.ToInt32(Console.ReadLine());
                Console.Write("-> İkinci Değeri Girin: ");
                ikincideger = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(ayrac);
                Console.WriteLine("[{0} / {1}] İşlem Sonucu: {2}\n{3}", ilkdeger, ikincideger, (ilkdeger / ikincideger), ayrac);
            }
            else if(kararVer.Equals("4") || kararVer.Equals("*"))
            {
                Console.Write("{0}\n-> İlk Değeri Girin: ", ayrac);
                ilkdeger = Convert.ToInt32(Console.ReadLine());
                Console.Write("-> İkinci Değeri Girin: ");
                ikincideger = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(ayrac);
                Console.WriteLine("[{0} * {1}] İşlem Sonucu: {2}\n{3}", ilkdeger, ikincideger, (ilkdeger * ikincideger), ayrac);
            }
            else
            {
                Console.WriteLine("{0}\n-> Tanımsız bir değer girdiniz.\n{1}", ayrac, ayrac);
            }
        }

        public static string tekCiftKontrol(int a)
        {
            if (a % 2 == 0)
            {
                return "-> Sorgulamış Olduğunuz Değer Çiftir.";
            }
            else
            {
                return "-> Girmiş Olduğunuz Değer Tektir.";
            }
        }
    }
}

Kod Çıktısı:

C# Metot Nedir
C# Metot örnekleri

C# Metot Örnekleri ilerleyen konularda daha detaylı ve sürekli kullanacağımız için temel mantığınızı anlamanız için basit bir şablon oluşturdum. Bu şablonu oluştururken uyguladığım aşamalar şu şekildedir;

#1 Öncelikle kullanıcıya gerekli bilgileri gösterecek ve yapmak istediği işlemi soracağım menu isminde bir geriye değer döndürmeyen parametresiz metot tanımlaması gerçekleştirdim.
#2 Oluşturmuş olduğum menu metodu içerisinde kullanıcının kararına göre gidecek işlemleri çalıştırabilmesi için hesapMakinesi ve tekCiftKontrol isminde metotlar tanımlayarak içlerinde çeşitli işlemler tanımladım.
#3 Bu tanımlamalarımı oluşturduktan sonra tekrar menu metodumun içerisine gelerek switch-case karar yapısı oluşturarak işlemlerin çağrılmasını sağladım.

Bu içeriğim üzerinde sizlere dilimin döndüğünce C# Metot Nedir, C# Metot Örnekleri, C# Metot Türleri gibi başlıklarda metot kavramını anlatmaya çalıştım. Eğer konu işleyişi hakkında bir öneriniz var ise veya aklınıza takılan bir soru varsa aşağıda bulunan yorum yap kısmından benim ile iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap