TOC

This article is currently in the process of being translated into Turkish (~99% done).

The Basics:

Functions

Bir fonksiyon bir kisim kod parcasinin sarmalanmasi ve kodun diger bolumleri tarafindan cagrilmasini saglar. Ayni kod parcasini yazmak zorunda olabilecegin bir duruma kolayca gelebilirsin, bu durumda fonksiyonlarin neden tanimlandigini aciklar. C# icinde, fonksiyonlar temel olarak asagidaki gibi bildirilir:

<visibility> <return type> <name>(<parameters>)
{
<function code>
}

Bir fonksiyonu çağırmak için, fonksiyon ismini yazıp bir parantez açarak, eğer varsa parametreleri parantez içine yazıp parantezi şu şekilde kapatmak yeterlidir.

DoStuff();

Örneğimiz DoStuff(); fonksiyonu şu şekildedir;

public void DoStuff()
{
    Console.WriteLine("I'm doing something...");
}

Kodumuzun ilk kısmı opsiyonel olan "public" 'in anlamı görünürlüktür. Eğer herhangi bir tanımlama yapılmaz ise fonksiyon "private" olacaktır. Bu konuya sonradan değinilecektir. Sonraki ise fonksiyon çalışması sonucunda geri döndürülecek tip tir. Bu C# dilinde geçerli olan herhangi bir tip olabileceği gibi, bizim burda yaptığımız şekilde void olabilir. Void burada kodun sonuçta herhangi bir değer döndürmeyeceğini belirtir. Ayrıca parantezlerin içerisinin boş olmasından anlaşılacağı üzere fonksiyonumuzun herhangi bir parametresi de yoktur ve bu haliyle epey sıkıcıdır. Hadi kodumuzu şu şekilde değiştirelim;

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    return result;
}

Neredeyse herşeyi değiştirdik. Fonksiyonumuz şimdi integer tipinde bir değer döndürüyor, iki adet parametreye sahip (ikisi de integer) ve sadece bir değeri döndürmenin yanında ayrıca bir hesaplama işlemi yapıp, işlem sonucunu geri döndürüyor. Bunun anlamı kodumuzun herhangi bir yerinde iki sayıyı toplamak istediğimizde her defasında tüm kodu yazmak yerine sadece fonksiyonumuzu çağırmak yeterli olmasıdır. Bu ufak örnek bize belki çok zaman ve efor kazandırmayacaktır fakat C# kullanmaya devam ettikçe fonksiyonları sevmeyi öğreneceğiz. Bu fonksiyon şu şekilde çağrılır:

int result = AddNumbers(10, 5);
Console.WriteLine(result);

Yukarida da bahsedildigi gibi, bu fonksiyon bir deger donmek zorunda, cunku C# boyle gerektirmekte. Void disinda herhangi bir donus tipi tanimlandiginda, bu tipte bir donus yapmak zorundayiz. Eger kodun icindeki return satirini silersek, derleyicinin asagidaki gibi hata dondugunu goruruz:

'AddNumbers(int, int)': butun kod adimlari deger donmez

Derleyici, fonksiyonu tanimlarken bir deger donecegimizi bildirmemize ragmen fonksiyonu yazarken return degerini sildigimiz icin, bize yazdigimiz fonksiyonun bir deger donmedigini hatirlatir. Derleyici oldukca akillidir ! Satiri silmek yerine soyle bir sey deneyebiliriz :

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
}

Yine ayni hatayi gorecegiz - ama neden ? Cunku yukaridaki kod blogunun icinde if durumunun gerceklenip gerceklenmeyecegi kesin degildir, return satiri uygulanabilir. Bu sorunu ikinci bir return yazarak cozebiliriz, kod blogunun sonuna asagidaki gibi bir return durumu ekleyelim:

public int AddNumbers(int number1, int number2)
{
    int result = number1 + number2;
    if(result > 10)
    {
return result;
    }
    return 0;
}

Bu bizim kendi kendimize urettigimiz sorunu cozecektir, ayni zamanda bir fonksiyon icinde birden cok return kullanabilecegimizi de gosterir. Fonksiyon icindeki herhangi bir return durumuna ulasildigi zaman, fonksiyondan cikilir, daha fazla satir yurutulmez. Yukaridaki ornekte, sonuc 10 degerinden buyuk oldugu surece asla "return 0" a ulasilamayacaktir.

This article has been deprecated!

This article has been re-organized and updated to better match the rest of the tutorial.

We suggest that you read this article instead: Methods (functions)


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!