C # 'daki Fonksiyonlara Giriş

C # 'ta bir işlev, bir şey yapan ve daha sonra değeri döndüren bir paketleme kodu yoludur. C'den farklı olarak, C ++ ve diğer bazı diller, işlevler kendi başlarına mevcut değildir. Onlar bir parçası nesne odaklı programlama yaklaşımı.

E-tabloları yöneten bir program, örneğin bir nesnenin parçası olarak bir sum () işlevi içerebilir.

C # 'da, bir fonksiyon üye fonksiyonu olarak adlandırılabilir - bir sınıfın üyesidir - ancak bu terminoloji C ++' da bırakılmıştır. Bunun olağan adı bir yöntemdir.

Örnek Yöntemi

İki tür yöntem vardır: örnek yöntemi ve statik yöntem. Bu giriş örnek yöntemini kapsamaktadır.

Aşağıdaki örnek basit bir sınıfı tanımlar ve onu çağırır Ölçek. Bu örnek basit bir konsol programıdır, bu yüzden buna izin verilir. Genellikle, C # dosyasında tanımlanan birinci sınıf form sınıfı olmalıdır.

Böyle boş bir sınıfa sahip olmak mümkün sınıf testi {}, ama yararlı değil. Boş görünse de, tüm C # sınıfları gibi, onu içeren Nesneden miras alır ve bir varsayılan içerir inşaatçı ana programda.

instagram viewer
var t = yeni Test ();

Bu kod çalışır, ancak bir örnek oluşturmak dışında çalıştırıldığında hiçbir şey yapmaz t boş test sınıfı. Aşağıdaki kod bir işlev ekler, "Merhaba" sözcüğünü çıktılayan bir yöntem.

Sistem kullanma;
ad alanı funcex1
{
sınıf testi
{
kamu boşluğu SayHello ()
{
Konsol. WriteLine ("Merhaba");
}
}
sınıf Programı
{
statik boşluk Ana (dize [] argümanları)
{
var t = yeni Test ();
t. Merhaba de() ;
Konsol. Anahtar okuma() ;
}
}
}

Bu kod örneği şunları içerir Konsol. Anahtar okuma(), çalıştırıldığında konsol penceresini görüntüler ve Enter, Space veya Return (shift, Alt veya Ctrl tuşları değil) gibi bir tuş girişini bekler. Bu olmadan, konsol Penceresini açar, "Merhaba" çıktısını verir ve sonra göz açıp kapayıncaya kadar kapanır.

İşlev Merhaba de olabildiğince basit bir işlev. Bu genel bir işlevdir, yani işlev sınıfın dışından görülebilir.

Kelimeyi kaldırırsan halka açık ve yapmaya çalış derleme kod, "funcex1.test bir derleme hatası ile başarısız olur. SayHello () 'koruma seviyesi nedeniyle erişilemez. "Public kelimesinin bulunduğu ve yeniden derlediği yere" private "kelimesini eklerseniz, aynı derleme hatasını alırsınız. Sadece tekrar "herkese açık" olarak değiştirin.

Kelime geçersiz işlevde işlevin herhangi bir değer döndürmediği anlamına gelir.

Tipik Fonksiyon Tanımlama Özellikleri

  • Erişim seviyesi: genel, özel ve diğerleri
  • Dönüş değeri>: void veya int gibi herhangi bir tür
  • Yöntem Adı: SayHello
  • Herhangi bir yöntem parametresi: şimdilik yok. Bunlar, yöntem adından sonra parantez () içinde tanımlanır

Başka bir işlevin, MyAge () tanımının kodu:

public int MyAge ()
{
dönüş 53;
}

Bunu hemen Merhaba de() yöntemini ekleyin ve bu iki satırı önce ekleyin Konsol. Anahtar okuma().

var yaş = t. Yaşım();
Konsol. WriteLine ("David {0} yaşında", yaş);

Programın çalıştırılması artık bunun sonucunu vermektedir:

Merhaba
David 53 yaşında,

var yaş = t. Yaşım(); yönteme çağrı 53 değerini döndürdü. En kullanışlı fonksiyon değil. Daha kullanışlı bir örnek, bir dizi int, başlangıç ​​dizini ve toplanacak değerlerin sayısı.

Bu işlev:

halka açık toplam (int [] değerleri, int startindex, int endindex)
{
var toplam = 0;
için (var index = startindex; indeks <= endIndex; indeks ++)
{
toplam + = değerler [dizin];
}
toplam getiri;
}

İşte üç kullanım durumu. Bu, Main () öğesine eklenecek ve Sum işlevini test etmek için çağrılacak koddur.

var değerler = yeni int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Konsol. WriteLine (t. Toplam (değerler, 0,2)); // 6 olmalı
Konsol. WriteLine (t. Toplam (değerler, 0,9)); // 55 olmalı
Konsol. WriteLine (t. Toplam (değerler, 9,9)); // 9. değer 10 olduğundan 10 olmalıdır

İçin döngü startindex aralığındaki değerleri endindex'e ekler, bu nedenle startindex = 0 ve endindex = 2 için bu 1 + 2 + 3 = 6'nın toplamıdır. 9,9 için ise sadece bir değer ekler [9] = 10.

İşlev içinde, yerel değişken toplamı 0 olarak başlatılır ve ardından dizi değerlerinin ilgili kısımları eklenir.

instagram story viewer