Bei dem Versuch, ein praktisches Dienstprogramm zur Validierung von String-Konvertierungen zu erstellen, ist ein Entwickler bei der Verwendung von „TryParse“ auf einen Kompilierungsfehler gestoßen. Dieser Fehler trat auf, weil „TryParse“ in keiner Schnittstelle oder Basisklasse definiert ist.
Um dieses Problem zu beheben, haben Entwickler alternative Methoden untersucht. Ein Ansatz schlug vor, den TypeDescriptor und seine „TryParse“-Funktionen zu nutzen. Diese Implementierung war jedoch auf die Ausnahmebehandlung angewiesen, was Bedenken hinsichtlich ihrer Zuverlässigkeit aufkommen ließ.
Um diese Probleme zu beheben, wurde eine modifizierte Version des generischen Dienstprogramms „TryParse“ eingeführt:
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
Dies Der geänderte Code macht die Abhängigkeit von Generika überflüssig und übergibt stattdessen den zu validierenden Typ explizit. Mithilfe der Methode „ConvertFromString“ wird versucht, die Eingabezeichenfolge in den angegebenen Typ zu konvertieren. Während der Konvertierung auftretende Ausnahmen werden als Validierungsfehler interpretiert, was zu einer booleschen „false“-Rückgabe führt.
Durch die Nutzung der Konvertierungsfunktionen des TypeDescriptor bietet dieses überarbeitete „TryParse“-Dienstprogramm einen zuverlässigen und flexiblen Mechanismus zur Validierung von String-Konvertierungen ohne Fallstricke ausnahmebasierter Implementierungen.
Das obige ist der detaillierte Inhalt vonWie kann ich ein zuverlässiges generisches „TryParse'-Dienstprogramm für String-Konvertierungen in C# erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!