Methods

Methods using for don’t repeat yourself (dry developing principle)
Diyelim ki bizim bir database’e kullanıcı kayıt işlemimiz var ve bu işlemi birçok yerde kullandık
Her yerde bu işlemi tekrar tekrar ayrı ayrı yazarsak yarın birgün değiştirmemiz gerektiğinde tüm kodları değiştirmemiz gerekecek
Method kullanarak bu bu işlemleri bir kere yazıp tek bir merkezden çağırabilir ve kontrol edebiliriz

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Methods
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * Methods using for don't repeat yourself (dry developing principle)
             * Diyelim ki bizim bir database'e kullanıcı kayıt işlemimiz var ve bu işlemi birçok yerde kullandık
             * Her yerde bu işlemi tekrar tekrar ayrı ayrı yazarsak yarın birgün değiştirmemiz gerektiğinde tüm kodları değiştirmemiz gerekecek
             * Method kullanarak bu bu işlemleri bir kere yazıp tek bir merkezden çağırabilir ve kontrol edebiliriz
            */

            Add();
            Add();
            Add();

            var result = Add2(18, 12);
            Console.WriteLine(result);

            Console.WriteLine(Add3(5));

            int number1 = 8;    //These're value types so they don't change but if we convert to reference type they can change
            int number2 = 11;
            Console.WriteLine(Add4(ref number1, number2));
            Console.WriteLine(number1);

            int number3;
            Console.WriteLine(Add5(out number3, number2));
            Console.WriteLine(number1);

            Console.WriteLine(Multiple(4, 5));
            Console.WriteLine(Multiple(4, 5, 3));

            Console.WriteLine(Add6Params(2, 12, 43, 540,1,343,6));
            Console.ReadLine();
        }

        // Void Methods
        static void Add()   //Void : Boş, değer döndürmeyen metodlar. Git şunu yap (bir yere kayıt yap, bir yere birşey yaz gibi)
        {
            Console.WriteLine("Added!");
        }


        // Parameteric Methods
        static int Add2(int number1, int number2)   //integer tipinde bir değer döndüreceği için fonksiyonu da int tipinde tanımlarız
        {
            var result = number1 + number2;
            return result;
        }

        // Default Parameter Methods
        static int Add3(int number1, int number2 = 46)   //Eğer number2 verilmezse default değer olarak 30'u kullan. 
        //Default değer ya sondaki parametre/parametrelere ya da hepsine verilebilir(Baştakine verilip sondakilere verilmezlik yapılamaz func(int num1=13, int num2) yapılamaz)
        {
            var result = number1 + number2;
            return result;
        }

        // Ref Keyword
        static int Add4(ref int number1, int number2)   //ref ifadesi bizim value type olan değerimizi referance type'a çevirir.
        {                                               //Örn kredi için müşteriye işlem yapıyor olalım sonra bu müşterinin kredi notunu değiştirdik ve bu değere ulş. ist.
            number1 = 55;
            return number1 + number2;
        }

        // Out Keyword
        static int Add5(out int number3, int number2)  //out, ref ile aynı fakat refte number1 önceden set edilmiş(değer verilmiş) olmalı out'ta bu şart yok
        {
            number3 = 55;                              //fakat out'ta alınan parametremiz set edilmek zorunda
            return number3 + number2;
        }

        // Method Overloading
        static int Multiple(int number1, int number2)
        {
            return number1 * number2;
        }
        static int Multiple(int number1, int number2, int number3)
        {
            return number1 * number2 * number3;
        }

        // Params Keyword
        //Method overloading'te parametre sayısını artırabileceğimiz gördük fakat biz bunu tek tek yapmak istemiyorda toplu olarak bir sürü parametre almak istiyorsak;
        static int Add6Params(params int[] numbers)   //Params ile  methodumuza aynı türde istediğimiz kadar parametre gönderebiliriz.
        {
            return numbers.Sum();
        }
    }
}

Yorum bırakın

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

WordPress.com ile böyle bir site tasarlayın
Başlayın