Grüße an alle ... Ich muss Trim
a String
. Aber ich möchte alle wiederholten Leerzeichen innerhalb des Strings selbst entfernen, nicht nur am Ende oder am Anfang. Ich könnte es mit einer Methode machen wie:
public static string ConvertWhitespacesToSingleSpaces(string value)
{
value = Regex.Replace(value, @"\s+", " ");
}
Was ich von hier bekommen habe . Aber ich möchte, dass dieser Code in sich selbst aufgerufen wird String.Trim()
, also denke ich, dass ich die Trim
Methode erweitern oder überladen oder überschreiben muss ... Gibt es eine Möglichkeit, dies zu tun?
Danke im Voraus.
c#
string
extension-methods
trim
Girardi
quelle
quelle
Ist es möglich? Ja, aber nur mit einer Erweiterungsmethode
Die Klasse
System.String
ist versiegelt, sodass Sie weder Überschreiben noch Vererbung verwenden können.quelle
String.Trim
.Ihre Frage hat ein Ja und ein Nein.
Ja, Sie können vorhandene Typen mithilfe von Erweiterungsmethoden erweitern. Erweiterungsmethoden können natürlich nur auf die öffentliche Schnittstelle des Typs zugreifen.
Nein, Sie können diese Methode nicht aufrufen
Trim()
. Erweiterungsmethoden sind nicht an der Überladung beteiligt. Ich denke, ein Compiler sollte Ihnen sogar eine Fehlermeldung geben, die dies detailliert beschreibt.Erweiterungsmethoden sind nur sichtbar, wenn der Namespace verwendet wird, der den Typ enthält, der die Methode definiert.
quelle
Erweiterungsmethoden!
quelle
Neben der Verwendung von Erweiterungsmethoden - hier wahrscheinlich ein guter Kandidat - ist es auch möglich, ein Objekt zu "verpacken" (z. B. "Objektzusammensetzung"). Solange das verpackte Formular nicht mehr Informationen enthält als das verpackte Objekt, kann das verpackte Element ohne Informationsverlust sauber durch implizite oder explizite Konvertierungen geleitet werden: nur eine Änderung des Typs / der Schnittstelle.
Viel Spaß beim Codieren.
quelle