Heim >Backend-Entwicklung >C++ >Wie kann man Enum -Zeichenfolgen mit einem Standardwert in C#sicher analysieren?
Bildungsmethode und Aufzählungssteuerungsbeschränkungen
Ziel ist es, eine generische Funktion zu erstellen, die
-Funktion zu erweitern und den Standardwert zu ermöglichen, wenn Sie den Übereinstimmungswert der Übereinstimmung nicht finden können. Diese Funktion sollte nicht durch den Fall unterschieden werden.
Enum.Parse
Bei dem Versuch, die folgende Code -Definitionsfunktion zu verwenden:
Ich werde auf einen Fehler stoßen und darauf hinweisen, dass die Einschränkung keine spezielle Klasse sein kann (System.Enum).
<code class="language-csharp">public static T GetEnumFromString<T>(string value, T defaultValue) where T : Enum { // 实现... }</code>
Lösung:
Um diesen Fehler zu lösen und die Verwendung generischer Aufzählungen zu ermöglichen, kann die Einschränkung geändert werden:
Die Einschränkung nach diesem Update stellt sicher, dass T eine Struktur ist und auch die ikonvertierbare Schnittstelle unterstützt, die durch Aufzählung implementiert wird.
<code class="language-csharp">public static T GetEnumFromString<T>(string value, T defaultValue) where T : struct, IConvertible</code>Verbesserte Implementierung:
Der folgende geänderte Code zeigt die Verbesserung der Verbesserung:
Diese Methode akzeptiert jetzt generische Aufzählungsarten und ist völlig sicher, um sicherzustellen, dass nur effektive Aufzählungswerte zurückgegeben werden. Die Verwendung vongarantiert die Richtigkeit der Kreuzkultur.
Das obige ist der detaillierte Inhalt vonWie kann man Enum -Zeichenfolgen mit einem Standardwert in C#sicher analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!