Menguasai Overloading Metode dalam C#: Konsep, Contoh, dan Praktik Terbaik
Menguasai Overloading Metode dalam C#
Pelajari cara overload metode dalam C#, termasuk mengubah jumlah, tipe, dan urutan parameter, dengan contoh yang jelas.
Dalam C#, sebuah kelas dapat berisi beberapa metode dengan nama yang sama tetapi daftar parameter yang berbeda—hal ini disebut overloading metode. Contohnya:
void display() { ... } void display(int a) { ... } float display(double a) { ... } float display(int a, float b) { ... }
Di sini, metode display() di-overload. Metode-metode ini berbagi nama yang sama tetapi menerima argumen yang berbeda.
Catatan: Overloading ditentukan sepenuhnya oleh daftar parameter; tipe pengembalian dapat berbeda.
1. Dengan Mengubah Jumlah Parameter
Anda dapat overload sebuah metode jika jumlah parameternya berbeda.
void display(int a) { ... } ... void display(int a, int b) { ... }
Contoh:
using System; namespace MethodOverload { class Program { // metode dengan satu parameter void display(int a) { Console.WriteLine("Argumen: " + a); } // metode dengan dua parameter void display(int a, int b) { Console.WriteLine("Argumen: " + a + " dan " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.display(100); p1.display(100, 200); Console.ReadLine(); } } }
Output
Argumen: 100 Argumen: 100 dan 200
Berdasarkan jumlah argumen yang diteruskan, overload yang sesuai akan dipanggil.
p1.display(100) memanggil versi satu parameter.
p1.display(100, 200) memanggil versi dua parameter.
2. Dengan Mengubah Tipe Data Parameter
Overloading juga bekerja ketika tipe parameter berbeda, meskipun jumlahnya sama.
void display(int a) { ... } ... void display(string b) { ... }
Contoh:
using System; namespace MethodOverload { class Program { // metode dengan parameter int void display(int a) { Console.WriteLine("tipe int: " + a); } // metode dengan parameter string void display(string b) { Console.WriteLine("tipe string: " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.display(100); p1.display("Programiz"); Console.ReadLine(); } } }
Output
tipe int: 100 tipe string: Programiz
p1.display(100) memanggil overload int.
p1.display("Programiz") memanggil overload string.
3. Dengan Mengubah Urutan Parameter
Ketika daftar parameter memiliki tipe dan jumlah yang sama, mengubah urutannya menciptakan overload yang berbeda.
void display(int a, string b) { ... } ... void display(string b, int a) { ... }
Contoh:
using System; namespace MethodOverload { class Program { // metode dengan parameter int dan string void display(int a, string b) { Console.WriteLine("int: " + a); Console.WriteLine("string: " + b); } // metode dengan parameter string dan int void display(string b, int a) { Console.WriteLine("string: " + b); Console.WriteLine("int: " + a); } static void Main(string[] args) { Program p1 = new Program(); p1.display(100, "Pemrograman"); p1.display("Programiz", 400); Console.ReadLine(); } } }
Output
int: 100 string: Pemrograman string: Programiz int: 400
p1.display(100, "Pemrograman") memanggil overload int, string.
p1.display("Programiz", 400) memanggil overload string, int.