Method overloading in C#: concepten, voorbeelden en best practices
Method overloading in C# onder de knie
Ontdek hoe je methodes in C# kunt overloaden, inclusief het wijzigen van parameteraantallen, typen en volgorde, met duidelijke voorbeelden.
In C# kan een klasse meerdere methodes met dezelfde naam maar verschillende parameterlijsten bevatten – dit heet method overloading. Bijvoorbeeld:
void display() { ... } void display(int a) { ... } float display(double a) { ... } float display(int a, float b) { ... }
Hier is de display()-methode overgeladen. Deze methodes delen dezelfde naam maar accepteren verschillende argumenten.
Let op: Overloading wordt uitsluitend bepaald door parameterlijsten; return types mogen verschillen.
1. Door het aantal parameters te wijzigen
Je kunt een methode overloaden als het aantal parameters verschilt.
void display(int a) { ... } ... void display(int a, int b) { ... }
Voorbeeld:
using System; namespace MethodOverload { class Program { // methode met één parameter void display(int a) { Console.WriteLine("Arguments: " + a); } // methode met twee parameters void display(int a, int b) { Console.WriteLine("Arguments: " + a + " and " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.display(100); p1.display(100, 200); Console.ReadLine(); } } }
Output
Arguments: 100 Arguments: 100 and 200
Op basis van het aantal doorgegeven argumenten wordt de juiste overload aangeroepen.
p1.display(100)roept de versie met één parameter aan.p1.display(100, 200)roept de versie met twee parameters aan.
2. Door de datatypes van parameters te wijzigen
Overloading werkt ook wanneer de parameter types verschillen, zelfs als het aantal gelijk is.
void display(int a) { ... } ... void display(string b) { ... }
Voorbeeld:
using System; namespace MethodOverload { class Program { // methode met int parameter void display(int a) { Console.WriteLine("int type: " + a); } // methode met string parameter void display(string b) { Console.WriteLine("string type: " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.display(100); p1.display("Programiz"); Console.ReadLine(); } } }
Output
int type: 100 string type: Programiz
p1.display(100)roept deint-overload aan.p1.display("Programiz")roept destring-overload aan.
3. Door de volgorde van parameters te wijzigen
Wanneer de parameterlijst dezelfde types en aantal heeft, creëert het wijzigen van hun volgorde verschillende overloads.
void display(int a, string b) { ... } ... void display(string b, int a) { ... }
Voorbeeld:
using System; namespace MethodOverload { class Program { // methode met int en string parameters void display(int a, string b) { Console.WriteLine("int: " + a); Console.WriteLine("string: " + b); } // methode met string en int parameters 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, "Programming"); p1.display("Programiz", 400); Console.ReadLine(); } } }
Output
int: 100 string: Programming string: Programiz int: 400
p1.display(100, "Programming")roept deint, string-overload aan.p1.display("Programiz", 400)roept destring, int-overload aan.
C Taal
- EPA Methode 21: Uitgebreid Lekdetectie & Reparatieprotocol
- C# Abstract Classes & Methods: Een Praktische Gids
- C# Partial Classes en Methods: Een Praktische Gids
- C# Sealed Classes en Methods: Wanneer en Hoe Te Gebruiken
- Constructor overloading in C#: flexibele klassen ontwerpen
- C# Methodes: Definiëren, Aanroepen en Gebruiken van Functies
- Operator Overloading in C# Beheersen voor Aangepaste Typen
- C# Anonymous Methods: Delegate Gebruik Vereenvoudigen
- Verilog Tasks begrijpen: Functions vs Tasks, Syntax en Gebruik
- Verilog Display Tasks beheersen: Efficiënt Debuggen & Loggen
- Operator overloading in Python beheersen: een praktische gids