Fungsi lokal (catatan C# 6) dan overloading
Lakukan overload metode dengan aman (nama sama, parameter berbeda) dan, karena C# 6 tidak memiliki fungsi lokal, tiru perilakunya dengan helper privat yang kecil.
Fungsi lokal (catatan C# 6) dan overloading adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. 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 3 pelajaran total.
Ikhtisar
Tujuan: Gunakan satu nama metode untuk pekerjaan yang berkaitan (overloading). Dalam C# 6 tidak ada fungsi lokal; gunakan helper private yang kecil sebagai gantinya.
Dasar-dasar overloading
Overload memiliki nama yang sama, tetapi berbeda dalam tipe atau jumlah parameter. Kompiler memilih kecocokan terbaik.
using System;
public static class MathX
{
public static int Sum(int a, int b) { return a + b; }
public static double Sum(double a, double b) { return a + b; }
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Sum ints = " + MathX.Sum(2, 3));
Console.WriteLine("Sum doubles = " + MathX.Sum(2.5, 3.1));
}
}
Overload berdasarkan jumlah parameter
Mengubah jumlah parameter akan membuat kumpulan overload yang jelas.
using System;
public static class Printer
{
public static void Print(string text)
{
Console.WriteLine(text);
}
public static void Print(string text, int times)
{
for (int i = 0; i < times; i = i + 1)
{
Console.WriteLine(text);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Printer.Print("Hello");
Printer.Print("Hi", 2);
}
}
Aturan tipe kembalian
Aturan: Tipe kembalian saja tidak dapat membedakan overload. Ubah tipe, jumlah, atau pengubah parameter, misalnya ref/out, agar overload valid.
Alternatif fungsi lokal
Tidak ada fungsi lokal dalam C# 6: pisahkan metode private kecil agar metode utama tetap rapi.
using System;
// No local functions in C# 6: use a tiny private helper inside the class.
public class Report
{
private static string Header(string title)
{
return "-- " + title + " --";
}
public static void Print(string title, string body)
{
Console.WriteLine(Header(title));
Console.WriteLine(body);
}
}
public class Program
{
public static void Main(string[] args)
{
Report.Print("Status", "All green");
}
}
Resolusi overload
Kompiler memilih kecocokan terbaik dari kumpulan overload. Jika pemanggilan ambigu, tambahkan konversi tipe atau sesuaikan tanda tangan metode.
using System;
public static class Formatter
{
public static string Format(int n) { return "N=" + n; }
public static string Format(string s) { return "S=" + s; }
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(Formatter.Format(5)); // picks int overload
Console.WriteLine(Formatter.Format("hello")); // picks string overload
// Avoid ambiguity: cast when needed
Console.WriteLine(Formatter.Format((int)3));
}
}
Aturan overloading
Ringkasan
Ringkasan: Bangun kumpulan overload dengan mengubah tipe atau jumlah parameter, bukan tipe kembalian. Dalam C# 6, ganti fungsi lokal dengan helper private kecil agar metode tetap rapi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Fungsi lokal (catatan C# 6) dan overloading” gratis?
Ya — teks lengkap “Fungsi lokal (catatan C# 6) dan overloading” 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 3 pelajaran total.
Apa yang akan aku pelajari di “Fungsi lokal (catatan C# 6) dan overloading”?
Lakukan overload metode dengan aman (nama sama, parameter berbeda) dan, karena C# 6 tidak memiliki fungsi lokal, tiru perilakunya dengan helper privat yang kecil. 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 3 dari 3.
Berapa lama pelajaran “Fungsi lokal (catatan C# 6) dan overloading” 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
- Signatur, nilai kembalian; berbadan-ekspresi; opsional/bernama; ref/out; overloading
- Parameter opsional/bernama; ref/out/in (dasar)
- Fungsi lokal (catatan C# 6) dan overloading