CodeBlanks Logo Icon CodeBlanks

Local functions

C# kursu · Başlangıç · Ders 75/116

Metot içinde yerel fonksiyon tanımlamayı öğrenirsin.

Local functions

C# 7 ile birlikte bir metodun içinde yerel fonksiyon (local function) tanımlanabilmiştir. Yerel fonksiyon yalnızca kendini çevreleyen metottan çağrılabilir; başka yerlerde görünmez. Büyük bir hesabı küçük parçalara bölmek için idealdir.

Tanımlama, normal bir metot gibidir; yalnızca static anahtar sözcüğü yazılmaz. Örnek: int Square(int n) { return n * n; }.

Yerel fonksiyon kullanımı

Yerel fonksiyonlar dış metottan önce ya da sonra tanımlanabilir; çağrı sırası önemli değildir. Dış metodun yerel değişkenlerine erişebilirler; bu özellik onlara dışarıdan parametre geçmeden durumu paylaşma kolaylığı verir.

Bu sayede, dışarıdan çağrılmasını istemediğin yardımcı hesapları ayrı bir sınıf metodu yapmak yerine yerel fonksiyon olarak saklar; sınıfın dış yüzeyini sade tutarsın.

Uygulama Local function ile kare al

static void Run() metodu tanımla. Gövdesinde int Square(int n) { return n * n; } yerel fonksiyonunu tanımla ve Console.WriteLine(Square(5)); ile sonucu yazdır. Main içinde Run() çağır.

Örnek çözümü göster
Run gövdesine int Square(int n) { return n * n; } tanımını ve Console.WriteLine(Square(5)); çağrısını ekle, Main içine Run(); yaz.
Örnek çözüm:
using System;

class Program
{
    static void Run()
    {
        // Square yerel fonksiyonunu tanımla ve sonucunu yazdır
        int Square(int n) { return n * n; }
        Console.WriteLine(Square(5));
    }

    static void Main()
    {
        // Run'u çağır
        Run();
    }
}

Kendini test et

  1. İfadeyi anlamına eşle

    void Outer()
    Dış metot
    int Inner()
    Yerel fonksiyon
    return;
    Akışı bırakır
    static
    Sınıf düzeyinde
  2. Square(4) çağrısı ne yazdırır?

    static void Run()
    {
        int Square(int n) { return n * n; }
        Console.WriteLine(Square(4));
    }
    Run();
    • 16
    • 4
    • 8
    • 2
    Cevabı göster

    16 — Doğru. Yerel Square fonksiyonu 4*4 = 16 döndürür.

  3. Local function tanımı

    static void Run()
    {
        ____
        Console.WriteLine(Double(5));
    }
    Cevabı göster
    static void Run()
    {
        int Double(int n) { return n * 2; }
        Console.WriteLine(Double(5));
    }

Başlangıç bölümündeki tüm dersler