Erweiterungsmethoden in C# erklärten

Erweiterungsmethoden in C# erklärten
Erweiterungsmethoden sind ein leistungsstarkes Merkmal von C#, mit dem Entwickler vorhandene Typen mit neuen Funktionen erweitert werden können, ohne ihren Quellcode zu ändern. In diesem Artikel werden C# -Erweiterungsmethoden untersucht und wie sie in dieser Programmiersprache verwendet werden können.

Was sind Erweiterungsmethoden?

Erweiterungsmethoden sind eine Art statische Methode, die den Problem der Bearbeitung des Quellcode zum Hinzufügen neuer Methoden beseitigt. Dies bedeutet, dass Entwickler Typen wie Zeichenfolgen, Ganzzahlen oder andere benutzerdefinierte Klasse neue Funktionen hinzufügen können, ohne eine neue Klasse erstellen zu müssen oder die ursprüngliche Klasse zu ändern. Erweiterungsmethoden werden in statischen Klassen definiert und verwenden die "Das" Schlüsselwort Um den erweiterten Typ anzugeben, ist die Syntax zum Erstellen einer Erweiterungsmethode wie folgt:

public static returnype methodName (dieser Parameter von ExtendedType)

// Implementierung

Das öffentliche Schlüsselwort zeigt an, dass die Methode von überall im Code von überall zugänglich ist. MethodName ist der Name der Erweiterungsmethode und dieses Schlüsselwort, gefolgt von dem ExtendedType Der Parameter zeigt an, dass diese Methode die ExtendedType -Klasse erweitert.

Der Parameter ist der an die Methode übergebene Parameter, und die Implementierung der Methode ist in den Curly -Klammern geschrieben. Mit dieser Syntax können Entwickler neue Methoden für vorhandene Typen erstellen, wodurch der Code wiederverwendbarer und modularer wird.

Verwenden Sie die Erweiterungsmethode zur Erweiterung der String -Klasse

Nehmen wir an, Sie möchten der String -Klasse eine neue Methode hinzufügen, die den ersten Buchstaben der Zeichenfolge kapitalisiert. Sie können diese mit einer Erweiterungsmethode mit dem folgenden Code verwenden:

mit System verwenden;
Public Static Class Stringextensionen

Public Static String CapitalizeFirStretter (diese Zeichenfolgeeingabe)

if (String.Isnullorempty (Eingabe)))

Eingabe zurückgeben;

Return Char.Toupper (Eingabe [0]) + Eingabe.Substring (1);


Klassenprogramm

statische void main (String [] args)

String input = "Hallo Linux";
String -Ergebnis = Eingabe.CapitalizeFirStretter ();
Konsole.WriteLine (Ergebnis);

Wir haben eine neue Konsolenanwendung erstellt, die die Klasse für StringExtensions -Klasse enthält, und im Haupt "Hallo Linux". Als nächstes die KapitalizeFirSTRetter Die Erweiterungsmethode wird in der Eingabezeichenfolge aufgerufen, die den ersten Buchstaben der Zeichenfolge kapitalisiert. Schließlich drucken wir das Ergebnis in der Konsole mit der Funktion 'writeLine ()', sodass Sie die Ausgabe sehen sollten "Hallo Linux" Wenn Sie dieses Programm ausführen:

So verwenden Sie die Erweiterungsmethode zur Erweiterung der Ganzzahlklasse

Angenommen, Sie möchten der Ganzzahlklasse eine neue Methode hinzufügen, die feststellt, ob die Ganzzahl gerade oder ungerade ist. Sie können dies mit einer Erweiterungsmethode tun, wie unten gezeigt:

mit System verwenden;
öffentliche statische Klasse Integertextensionen

öffentliches statisches Bool iseven (diese int -Eingabe)

Return Input % 2 == 0;


Klassenprogramm

statische void main (String [] args)

int nummer = 10;
if (Nummer.ISeven ())

Konsole.WriteLine ($ "number ist gerade.");

anders

Konsole.WriteLine ($ "number ist ungerade.");


Der Code erstellt eine Erweiterungsmethode ISEVEN für den int -Datentyp und die Iseven Die Funktion gibt true zurück, wenn die Eingabegleger gleichmäßig ist, und ansonsten falsch falsch.

Im Haupt. Schließlich drucken wir das Ergebnis in der Konsole mit der Funktion 'writeLine ()', sodass Sie die Ausgabe sehen sollten "10 ist gerade" Wenn Sie dieses Programm ausführen:

Verwenden Sie die Erweiterungsmethode zur Erweiterung der Listenschnittstelle

Nehmen wir an, Sie möchten der Ilist Schnittstelle, die feststellt, ob die Liste leer ist oder nicht, und die Verwendung einer Erweiterungsmethode, wie unten gezeigt:

mit System verwenden;
Verwenden von System.Sammlungen.Generisch;
öffentliche statische Klassenlistenextensionen

öffentliches statisches Bool Isempty (diese ilistische Liste)

Rückgabeliste == NULL || Liste.Count == 0;


Klassenprogramm

statische void main (String [] args)

Listnummern = new list ();
if (Zahlen.Ist leer())

Konsole.WriteLine ("Die Liste ist leer.");

anders

Konsole.WriteLine ($ "Die Liste enthält Nummern.Zählen Elemente.");


In diesem Beispiel haben wir eine Erweiterungsmethode erstellt Isempty für den Ilisten Datentyp, wobei T ein generischer Typ Parameter ist. Der Ist leer Die Methode gibt true zurück, wenn die Eingabeliste null ist oder keine Elemente enthält und sonst falsch falsch ist. Im Wesentlichen haben wir eine neue geschaffen Aufführen nannte Zahlen und dann die aufgerufen Ist leer Erweiterungsmethode in der Nummernliste, die true zurückgibt, da die Liste leer ist. Zunächst drucken wir das Ergebnis in der Konsole mit der Funktion 'writeLine ()', sodass Sie die Ausgabe sehen sollten "Die Liste ist leer" Wenn Sie dieses Programm ausführen:

Abschluss

Erweiterungsmethoden sind eine der nützlichsten Funktionen von C#, mit denen Programmierer vorhandene Typen mit neuen Funktionen erweitert werden können, ohne ihren ursprünglichen Code zu ändern. Erweiterungsmethoden werden in einer statischen Klasse definiert und verwenden die "Das" Schlüsselwort gefolgt von dem Typ, der erweitert wird, um anzuzeigen, dass es sich um Erweiterungsmethoden handelt. In diesem Artikel haben wir drei Beispiele für Erweiterungsmethoden gesehen, die die Klassen String-, Ganzzahl und Ilist erweitern.