Heim >Backend-Entwicklung >C++ >Kann „TryParse' für die generische Typvalidierung in C# verwendet werden?

Kann „TryParse' für die generische Typvalidierung in C# verwendet werden?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 16:28:38132Durchsuche

Can `TryParse` Be Used for Generic Type Validation in C#?

Erweitern der generischen Typvalidierung mit „TryParse“

Mit der Absicht zu überprüfen, ob eine bestimmte Zeichenfolge einem vordefinierten Typ entspricht, handelt es sich um einen Versuch Es wird versucht, eine generische Erweiterung unter Verwendung von „TryParse“ zu entwickeln. Allerdings ist dieser Versuch auf ein Kompilierungshindernis gestoßen, da „TryParse“ weiterhin ungelöst ist.

Der Kern dieses Problems liegt in der Tatsache, dass „TryParse“ in keiner erkennbaren Schnittstelle gekapselt ist. Daher stellt sich die Frage nach der Machbarkeit einer solchen Implementierung.

Eine mögliche Lösung besteht darin, die TypeDescriptor-Klasse zu nutzen, einen Mechanismus, der speziell für diesen Zweck entwickelt wurde. Durch die Einbindung dieser Klasse kann ein robusterer Ansatz gewählt werden:

public static T Convert<T>(this string input)
{
    try
    {
        var converter = TypeDescriptor.GetConverter(typeof(T));
        if (converter != null)
        {
            // Cast ConvertFromString(string text) : object to (T)
            return (T)converter.ConvertFromString(input);
        }
        return default(T);
    }
    catch (NotSupportedException)
    {
        return default(T);
    }
}

Dieser aktualisierte Ansatz bietet mehrere Vorteile:

  • Es macht Ausnahmen überflüssig und fördert eine verfeinerte und effiziente Lösung.
  • Es bleibt die Flexibilität erhalten, einen bestimmten Typ zu akzeptieren, anstatt sich auf Generika zu verlassen, was mehr ermöglicht Vielseitigkeit.

Letztendlich bewältigt diese überarbeitete Lösung effektiv die anfängliche Herausforderung und bietet ein Mittel, um die Gültigkeit einer bestimmten Eingabezeichenfolge anhand eines vordefinierten Typs festzustellen.

Das obige ist der detaillierte Inhalt vonKann „TryParse' für die generische Typvalidierung in C# verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn