C# Functions(Metodlar)


15.04.2019 13:47:48 C#(Form,Console,Veritabani) Bilgi Yolunda

Program içerisinde iş bölümü yapabilmemizi sağlayan yapılardır.Örn alan hesaplayan bir fonksiyonumuz var her alan hesaplamasında çağırıp kullanırız.Çağrılana kadar ölü yapılardır çalışmazlar.

Eğer Metodun çalışabilmesi için kullanıcıdan istenen veriler varsa parametreli method olur.Method isimlendirmesi yaparken değişken isimlendirmesi kurallarına uyulur.

2 türlü metodumuz vardır.

1-GERİYE DEĞER DÖNDÜRMEYEN(VOID) METODLAR

Void metodlar geriye değer döndürmeyen metodlardır.İşlemler metodun içerisinde halledilir.Void anahtar kelimesini içerirler. return anahtar kelimesi kullanılmaz.

Kullanımı:

1
2
3
4
<Erişim Belirteci> void <Metod Adı>(varsa parametre)
{
Yapılacak işlemler
}

2-GERİYE DEĞER DÖNDÜREN METODLAR

Bu metodlar belirtilen tipte geriye değer döndürürler ve genelde bu döndürülen değer programın bir kısmında kullanılır.Parametreli ve parametresiz olarak çalışabilirler.

Kullanımı:

1
2
3
4
5
<Erişim Belirteci> Dönüş tipi <Metod Adı>(varsa parametre)
{
Yapılan işlemler 
return sonuc;
}

Metodlarda Parametre:Metodun çalışırken ihtiyaç duyduğu bilgilerdir.Parametreler kaç tane ise gönderildiği sıra ile alınır.

ERİŞİM BELİRTEÇLERİ

Metotta erişim belirteci belirtilmediyse Private olur ve sadece tanımlandığı class tan erişilir.

Metodun erişim belirteci Public ise genel erişime sahip olur dış sınıfardanda erişilebilir.

Metodumuza dış classlardan erişim olmasını istemiyorsak private tanımlarız.

STATİC METODLAR

Static olarak tanımlanmış metodları çağırırken nesne örneği almamıza gerek yoktur.Sınıfadı/nokta/fonsiyon şeklinde kullanılır.

örn:Console.WriteLine("Merhaba"); 

Consol sınıfının altındaki writeline metoduna direk erişim sağladık console sınıfından nesne türetmedik.

CONSTRUCTOR(YAPICI METOT)

Nesnenin ilk halini hazırlayan metotdur.Örn bir insan sınıfımız var bunun ilk kurulumunu düzenleyebiliriz.Geri dönüş tipi belirtilmez.Class ile aynı ada sahiptir.Parametreli yada parametresiz olabilir.

Örnek Kullanım:

Bir insan sınıfı oluşturalım ve yapıcı metodunu parametre alacak şekilde tanımlayalım.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
public class Insan
    {
        public Insan(string gelenAd,string gelenSoyad)
        {
            Ad = gelenAd;
            soyad = gelenSoyad;
        }
        public string Ad { get; set; }
        public string soyad { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Insan insan1 = new Insan("Bilgi", "Yolunda");
            Console.WriteLine(insan1.Ad);
            Console.ReadKey();
        }
    }

METOTLARIN AŞIRI YÜKLENMESİ(OVERLOADING)

Overloading:Metotların aşırı yüklenmesi demektir.Aynı isimde birden fazla metot tanımlamamıza olanak sağlar.Çalışma sırasında hangi metodun çağırıldığının anlaşılması için imzasına bakılır.Bir metodun overload olabilmesi için;

a.isimleri aynı olmalı.

b.Parametre sayıları farklı olmalı veya parametrelerin tipi farklı olmalıdır.

Örn:Çarp adında fonksiyon oluşturunuz.ilk hali iki sayı beklesin fonksiyonu aşırı yükleyip 3 sayı çarpan  aşırı yüklenmiş fonksiyon oluşturunuz.

1
2
3
4
5
6
7
8
 public static int carp(int sayi1, int sayi2)
        {
            return sayi1 * sayi2;
        }
        public static int carp(int sayi1, int sayi2,int sayi3)
        {
            return sayi1 * sayi2*sayi3;
        }

Örn Console.WriteLine() yazdığımızda bize bu fonksiyonun bir çok kullanım şekli olduğunu gösterir bu aşırı yüklenmiş fonksiyona örnektir.

ÖDEV

-Çağrıldığında ekrana ilk fonksiyon yazan,geriye değer döndürmeyen ve pametre almayan fonksiyon tanımlayınız.

-Çağrıldığında ekrana ilk fonksiyon yazan,geriye stringg tipinde değer döndüren, pametre almayan fonksiyon tanımlayınız.

-Dışarıdan iki parametre alan,aldığı parametreleri çarpıp geri döndüren fonksiyonu tanımlayınız.

-Aynı fonksiyonun üc parametre alanını yaparak aşırı yükleyiniz sayıların çarpımını  geriye değer döndüren fonksiyonu tanımlayınız.

-Yaz adında bir fonsiyon tanımlayınız.içerisine gönderdiğimiz string ifadyi ekrana yazsın.

ÖNEMLİ:Konu sonundaki videoyu izleyerek anlamadığınız kısımları pekiştirebilirsiniz.





Yorum Yap :



Site içi Arama


En Çok Okunanlar

Sorusu Olan Varmı?

Paylaştıgım video,dosya yada projelerle ilgili sorularınızı buradan sorabilirsiniz.
Not:Projemi siz yaparmısınız demeyin lütfen :)

Sorunuz mu var?