Methodenüberladung in C# meistern: Konzepte, Beispiele und Best Practices
Methodenüberladung in C# meistern
Entdecken Sie, wie Sie Methoden in C# überladen – durch Variation der Parameteranzahl, Typen und Reihenfolge – mit klaren Beispielen.
In C# kann eine Klasse mehrere Methoden mit demselben Namen, aber unterschiedlichen Parameterlisten enthalten – dies nennt man Methodenüberladung. Zum Beispiel:
void display() { ... }
void display(int a) { ... }
float display(double a) { ... }
float display(int a, float b) { ... }
Hier ist die display()-Methode überladen. Diese Methoden teilen sich denselben Namen, akzeptieren aber unterschiedliche Argumente.
Hinweis: Die Überladung wird ausschließlich durch die Parameterlisten bestimmt; Rückgabetypen können unterschiedlich sein.
1. Durch Ändern der Parameteranzahl
Sie können eine Methode überladen, wenn die Anzahl der Parameter unterschiedlich ist.
void display(int a) { ... }
void display(int a, int b) { ... }
Beispiel:
using System;
namespace MethodOverload
{
class Program
{
// Methode mit einem Parameter
void display(int a)
{
Console.WriteLine("Argumente: " + a);
}
// Methode mit zwei Parametern
void display(int a, int b)
{
Console.WriteLine("Argumente: " + a + " und " + b);
}
static void Main(string[] args)
{
Program p1 = new Program();
p1.display(100);
p1.display(100, 200);
Console.ReadLine();
}
}
}
Ausgabe
Argumente: 100 Argumente: 100 und 200
Basierend auf der Anzahl der übergebenen Argumente wird die passende Überladung aufgerufen.
p1.display(100)ruft die Ein-Parameter-Version auf.p1.display(100, 200)ruft die Zwei-Parameter-Version auf.
2. Durch Ändern der Datentypen der Parameter
Überladung funktioniert auch, wenn die Parametertypen unterschiedlich sind, selbst wenn die Anzahl gleich ist.
void display(int a) { ... }
void display(string b) { ... }
Beispiel:
using System;
namespace MethodOverload
{
class Program
{
// Methode mit int-Parameter
void display(int a)
{
Console.WriteLine("int-Typ: " + a);
}
// Methode mit string-Parameter
void display(string b)
{
Console.WriteLine("string-Typ: " + b);
}
static void Main(string[] args)
{
Program p1 = new Program();
p1.display(100);
p1.display("Programiz");
Console.ReadLine();
}
}
}
Ausgabe
int-Typ: 100 string-Typ: Programiz
p1.display(100)ruft dieint-Überladung auf.p1.display("Programiz")ruft diestring-Überladung auf.
3. Durch Ändern der Parameterreihenfolge
Wenn die Parameterliste dieselben Typen und Anzahl hat, erzeugt eine Änderung der Reihenfolge unterschiedliche Überladungen.
void display(int a, string b) { ... }
void display(string b, int a) { ... }
Beispiel:
using System;
namespace MethodOverload
{
class Program
{
// Methode mit int- und string-Parametern
void display(int a, string b)
{
Console.WriteLine("int: " + a);
Console.WriteLine("string: " + b);
}
// Methode mit string- und int-Parametern
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();
}
}
}
Ausgabe
int: 100 string: Programming string: Programiz int: 400
p1.display(100, "Programming")ruft dieint, string-Überladung auf.p1.display("Programiz", 400)ruft diestring, int-Überladung auf.
C Sprache
- C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
- C# Partielle Klassen und Methoden verstehen
- Versiegelte Klassen und Methoden in C# meistern
- Konstruktorüberladung in C# meistern
- Operator Overloading in Python meistern: Ein praktischer Leitfaden
- Verilog Tasks verstehen: Functions vs. Tasks, Syntax und Verwendung
- Verilog Display Tasks meistern: Effizientes Debugging & Logging
- C# Methoden: Definieren, Aufrufen, Rekursion & Parameterübergabe
- C# Operatorüberladung: Benutzerdefinierte Operatoren für eigene Typen
- C# Anonyme Methoden: Vereinfachung der Delegate-Nutzung