C# dilinde alt programlar fonksiyonlar (functions) ve prosedürler (procedures) olarak ikiye ayrılır. Bu alt programlar, programın farklı bölümlerinde kullanılmak üzere yazılır ve ana programdan ayrı olarak çalışırlar. Alt programlar, ana programın daha modüler ve düzenli olmasını sağlarlar.
Fonksiyonlar, bir veya daha fazla girdi alıp, bir çıktı döndüren işlevlerdir. Prosedürler ise, bir veya daha fazla girdi alıp, çıktı döndürmeyen işlevlerdir.
Örneğin, bir sayının faktöriyelini hesaplayan bir fonksiyon yazalım:
csharp
static int Faktoriyel(int sayi)
{
if (sayi == 0)
return 1;
else
return sayi * Faktoriyel(sayi – 1);
}
Bu fonksiyon, bir tamsayı alır ve o sayının faktöriyelini hesaplar. sayi == 0 koşulu gerçekleşirse, fonksiyon 1 değerini döndürür. Aksi takdirde, fonksiyon sayi ile Faktoriyel(sayi-1) değerini çarparak faktöriyel hesaplar. Bu işlem sonucunda, son olarak faktöriyel hesabı tamamlandığında, fonksiyon sonucu hesaplanan faktöriyeli döndürür.
Bu fonksiyonu ana programda kullanmak için aşağıdaki şekilde çağırabilirsiniz:
csharp
int faktoriyel = Faktoriyel(5);
Console.WriteLine(“5’in faktöriyeli: ” + faktoriyel);
Bu kodda, Faktoriyel fonksiyonu 5 parametresi ile çağrılır ve hesaplanan faktöriyel değeri faktoriyel değişkenine atanır. Daha sonra, Console.WriteLine metodu kullanılarak faktöriyel değeri ekrana yazdırılır.
Prosedürler de benzer şekilde kullanılır. Örneğin, bir dizideki elemanları ekrana yazdıran bir prosedür yazalım:
csharp
static void Yazdir(int[] dizi)
{
for (int i = 0; i < dizi.Length; i++)
{
Console.Write(dizi[i] + ” “);
}
Console.WriteLine();
}
Bu prosedür, bir tamsayı dizisi alır ve dizideki elemanları ekrana yazdırır. Dizideki elemanları for döngüsü ile tek tek dolaşarak ekrana yazdırır. Son olarak, Console.WriteLine() metodu kullanılarak satır atlayarak çıktıyı daha okunaklı hale getirir.