Abstraktes Header-Bild in den Farben von tsjdev apps

Blogbeitrag

Extension Methods: Object

Mit der Hilfe von Extension Methods können wir einem vorhandenen Typen zusätzliche Methoden hinzufügen, ohne einen neuen abgeleiteten Typ zu erstellen und ohne den ursprünglichen Typ bearbeiten zu müssen. Bei Extension Methods handelt es sich um statische Methoden. Im Laufe der Zeit ist eine beachtliche Sammlung an Extension Methods entstanden, welche in den verschiedensten Projekten zum Einsatz kamen und auch immer noch kommen. Ich möchte nun in einer kleinen Serie ein paar Methoden vorstellen, welche vielleicht für den einen oder anderen auch von Interesse sein könnten. Den Anfang machen Extension Methods zum Typ Object.

AsString

Jedes Object unterstützt die Methode ToString, allerdings muss vorher auf null überprüft werden, da es sonst zu einer Exception kommt. Daher gibt es die mit AsString eine Option, dass zunächst auf null überprüft wird und in diesem Fall ein leerer String zurückgegeben wird und ansonsten die klassische ToString-Methode verwendet wird.

public static string AsString(this object input)
{
    return input == null
        ? string.Empty
        : input.ToString();
}

WriteLine

In Kombination AsString möchte ich euch WriteLine vorstellen, welches ein Object entgegnen nimmt und einfach im Debug-Window ausgibt. Dies bietet sich während der Entwicklung an, weil man so einfach ganz schnell sich die jeweiligen Objekte ausgeben lassen kann.

public static void WriteLine(this object input)
{
     System.Diagnostics.Debug.WriteLine(input.AsString());
}

Clone

Manchmal braucht man eine Kopie von einem Object, mit dem man dann weitere Operationen durchführen muss ohne das ursprüngliche Object zu manipulieren. Hier kommt Clone ins Spiel, welches genau diese Aufgabe übernimmt. Es kommt hier Newtonsoft.Json zum Einsatz, welches sich aber eh in nahezu allen Projekten vorhanden ist.

public static T Clone<T>(this object input)
{
    var json = JsonConvert.SerializeObject(input);
    return JsonConvert.DeserializeObject<T>(json);
}

In diesem Beitrag habe ich euch einige Extension Methods vorgestellt, welche in verschiedenen Projekten vor mit zum Einsatz gekommen sind oder immer noch kommen.

Weiterempfehlen

Diesen Beitrag teilen

Wenn dir der Beitrag gefallen hat: gern weiterreichen. Gute Links dürfen sich ruhig schnell verbreiten.

Vorheriger/Nächster Beitrag

Rock, Paper, Scissors in Python Vorheriger Beitrag Rock, Paper, Scissors in Python Entwickleroptionen unter Android aktivieren Nächster Beitrag Entwickleroptionen unter Android aktivieren
Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Sicherheitslücken in verwendeten NuGet-Paketen finden Sicherheitslücken in verwendeten NuGet-Paketen finden Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen
Lust auf ein kurzes digitales Hallo? Wenn du eine Idee teilen, eine Frage loswerden oder ein Projekt anschieben willst: mein Posteingang ist deutlich zuverlässiger als Brieftauben. apps@tsjdev-apps.de Mail schicken