Angenommen, ich möchte eine Erweiterungs-Methode namens IsOdd() zu den Zahl-Datentypen in .NET hinzufügen. Die Implementierung davon wird jedoch für die Datentypen wie Int16, Int32, Int64, usw., mit Ausnahme des Parameters, der für die Erweiterungsmethode definiert wird, praktisch gleich sein. Ich mag diese Redundanz wirklich nicht, frage mich aber, ob es nicht möglich ist, sie zu vermeiden.Vermeiden Sie .NET-Erweiterungsmethoden für Zahlendatentypen?
Gibt es einen besseren Weg, damit umzugehen? Soll ich stattdessen eine Erweiterungsmethode für System.Math implementieren und überladene Definitionen für IsOdd() erstellen? Kurz gesagt, ich bin gespannt, ob Erweiterungsmethoden für die Zahlendatentypen aufgrund ihrer inhärenten Redundanz generell vermieden werden sollten.
Nun, würde ich eine Erweiterungsmethode auf diesen Typen einfach, weil sie so häufig verwendet werden, vermeiden, dass ein würde ich nicht brauchen 'IsOdd' alles, was oft. Es würde sie verstopfen. – Servy
... Um @ Servys Kommentar hinzuzufügen, wird es allgemein als schlechte Praxis angesehen, Erweiterungsmethoden zu sehr allgemeinen Typen wie struct & object hinzuzufügen. Erstellen Sie stattdessen einfach eine statische Klasse und testen Sie mit 'MyMath.IsOdd (x)' –