0Pricing
C# Academy · Pelajaran

Mendeklarasikan Fungsi Lokal

Definisikan fungsi pembantu di dalam metode.

Mendeklarasikan Fungsi Lokal adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Apa Itu Fungsi Lokal?

Fungsi lokal adalah metode yang dideklarasikan di dalam metode lain. Fungsi ini hanya terlihat di dalam anggota yang memuatnya, sehingga logika pembantu tetap dekat dengan tempat penggunaannya dan tidak menambah permukaan kelas.

Mendeklarasikan Fungsi Lokal

Tulis fungsi lokal seperti metode biasa, dengan menempatkannya di dalam isi metode. Anda dapat memanggilnya sebelum atau setelah deklarasinya dalam lingkup yang sama.

using System;

public class Program
{
    public static void Main()
    {
        int Square(int n) => n * n;

        Console.WriteLine(Square(4));
        Console.WriteLine(Square(7));
    }
}

Fungsi Lokal dengan Isi Blok

Fungsi lokal dapat memiliki isi blok lengkap dengan beberapa pernyataan, perulangan, dan variabel lokalnya sendiri, sama seperti metode apa pun.

using System;

public class Program
{
    public static void Main()
    {
        int Factorial(int n)
        {
            int result = 1;
            for (int i = 2; i <= n; i++) result *= i;
            return result;
        }

        Console.WriteLine(Factorial(5));
    }
}

Meningkatkan Keterbacaan

Fungsi lokal memungkinkan Anda memberi nama pada suatu bagian logika tanpa memenuhi kelas dengan metode privat yang hanya digunakan oleh satu metode. Dengan demikian, kode yang berkaitan tetap berdekatan.

using System;

public class Program
{
    public static void Main()
    {
        string Format(string label, int value) => label + ": " + value;

        Console.WriteLine(Format("Score", 90));
        Console.WriteLine(Format("Level", 3));
    }
}

Rekursi dengan Fungsi Lokal

Fungsi lokal dapat memanggil dirinya sendiri, sehingga rekursi mudah dituliskan tepat di tempat yang membutuhkannya.

using System;

public class Program
{
    public static void Main()
    {
        int Fib(int n) => n < 2 ? n : Fib(n - 1) + Fib(n - 2);

        for (int i = 0; i < 7; i++)
            Console.Write(Fib(i) + " ");
        Console.WriteLine();
    }
}

Fungsi Lokal Dapat Dideklarasikan Setelah Digunakan

Berbeda dengan variabel lokal, fungsi lokal dapat dirujuk lebih awal dalam metode, sebelum tempat deklarasinya. Compiler menyelesaikan seluruh lingkup yang memuat fungsi tersebut.

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(Greet("Ada")); // used before declared

        string Greet(string name) => "Hello, " + name;
    }
}

Parameter dan Tipe Kembalian

Fungsi lokal mendukung semua hal yang didukung metode biasa: beberapa parameter, nilai kembalian, parameter ref dan out, serta generik.

using System;

public class Program
{
    public static void Main()
    {
        bool TryHalve(int n, out int half)
        {
            half = n / 2;
            return n % 2 == 0;
        }

        if (TryHalve(10, out int result))
            Console.WriteLine("half is " + result);
    }
}

Fungsi Lokal Generik

Fungsi lokal dapat bersifat generik dan memiliki parameter tipe sendiri, terlepas dari metode yang memuatnya.

using System;

public class Program
{
    public static void Main()
    {
        T Echo<T>(T value)
        {
            Console.WriteLine("echoing " + value);
            return value;
        }

        int n = Echo(42);
        string s = Echo("hi");
        Console.WriteLine(n + " " + s);
    }
}

Penyarangan Fungsi Lokal

Fungsi lokal sendiri dapat berisi fungsi lokal lain. Fungsi bagian dalam hanya terlihat di dalam fungsi induknya, sehingga Anda dapat membuat lapisan pembantu dengan lingkup yang sangat terbatas.

using System;

public class Program
{
    public static void Main()
    {
        int Compute(int x)
        {
            int Double(int n) => n * 2;
            int AddOne(int n) => n + 1;
            return Double(AddOne(x));
        }

        Console.WriteLine(Compute(5));
    }
}

Fungsi Lokal untuk Validasi Argumen

Pola yang umum adalah memvalidasi argumen segera, lalu menunda pekerjaan sebenarnya ke fungsi lokal. Ini sangat berguna pada pembangkit iterasi agar validasi berjalan langsung.

using System;
using System.Collections.Generic;

public class Program
{
    static IEnumerable<int> Range(int start, int count)
    {
        if (count < 0) throw new ArgumentOutOfRangeException(nameof(count));
        return Iterate();

        IEnumerable<int> Iterate()
        {
            for (int i = 0; i < count; i++) yield return start + i;
        }
    }

    public static void Main()
    {
        foreach (var n in Range(10, 3)) Console.WriteLine(n);
    }
}

Kapan Menggunakan Fungsi Lokal

Gunakan fungsi lokal ketika fungsi pembantu hanya digunakan oleh satu metode, memerlukan nama yang deskriptif, atau perlu mengakses keadaan lokal metode. Dengan begitu, kelas tetap rapi dan logikanya mudah ditemukan.

using System;

public class Program
{
    public static void Main()
    {
        int total = 0;
        void Add(int n) => total += n; // helper tied to this method
        Add(3); Add(4); Add(5);
        Console.WriteLine(total);
    }
}

Pemeriksaan Singkat

Ingat kembali pengertian fungsi lokal.

Ringkasan

Fungsi lokal adalah fungsi pembantu bernama yang disarangkan di dalam metode.

  • Hanya terlihat di dalam anggota yang memuatnya.
  • Mendukung parameter, nilai kembalian, out/ref, generik, dan rekursi.
  • Dapat dirujuk sebelum deklarasinya.
  • Sangat cocok untuk fungsi pembantu yang hanya digunakan sekali dan validasi argumen segera dalam pembangkit iterasi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mendeklarasikan Fungsi Lokal” gratis?

Ya — teks lengkap “Mendeklarasikan Fungsi Lokal” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mendeklarasikan Fungsi Lokal”?

Definisikan fungsi pembantu di dalam metode. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Mendeklarasikan Fungsi Lokal” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendeklarasikan Fungsi Lokal
  2. Closure dan Variabel yang Ditangkap
  3. Fungsi Lokal Statis
  4. Fungsi Lokal vs Lambda
← Kembali ke C# Academy