Mögliche Duplizieren:
Extension Methods vs Static Utility ClassErweiterungsmethode vs. Hilfsklasse
Ich baue eine API von allgemeinen Funktionen, die Aktionen auf Objekten in .NET basierten auszuführen. Beispielsweise; Ich habe eine Funktion erstellt, die eine Zeichenfolge überprüft, um festzustellen, ob es sich um eine E-Mail-Adresse handelt.
konnte ich entweder:
static bool IsEmailAddress(string text)
{
return IsMail(text);
}
oder ich könnte eine Erweiterungsmethode erstellen, die wie so verwendet werden würde:
string text = "[email protected]";
if (text.IsEmailAddress())
{
}
, die besser geeignet ist, oder denken Sie, da dies eine ist Allzweckbibliothek, könnte ich es technisch in beide Richtungen implementieren und dem Entwickler erlauben zu entscheiden, welches für sie am besten ist?
** BTW: ** Verwenden Sie 'Return IsMail (Text)' anstelle der if-Anweisung. –
Ich würde mit Erweiterungsmethoden gehen und das Refactoring Mahmoud vorgeschlagen. –
Ich denke, es liegt nicht in der Verantwortung von "string" zu wissen, was eine E-Mail-Adresse ist. Ich denke also nicht, dass dies eine Erweiterungsmethode sein sollte. – CodesInChaos