Heim >Backend-Entwicklung >C++ >Wie kann ich C#-Enums Strings zuordnen?
C#-Enums zu Strings zuordnen: Problemumgehungen
C#-Aufzählungen verwenden von Natur aus Ganzzahltypen, wodurch ihre direkte Zuordnung zu Zeichenfolgen eingeschränkt wird. Allerdings gibt es mehrere wirksame Strategien, um diese Einschränkung zu überwinden.
Ein Ansatz nutzt Klasseneigenschaften. Indem wir eine Klasse mit String-Eigenschaften definieren, erstellen wir eine Struktur, die das Enum-Verhalten nachahmt:
<code class="language-csharp">public class LogCategory { public string Value { get; private set; } public static LogCategory Trace { get; } = new LogCategory("Trace"); public static LogCategory Info { get; } = new LogCategory("Info"); // ... other categories }</code>
Dies ermöglicht den typsicheren Zugriff auf String-Darstellungen:
<code class="language-csharp">public static void WriteLog(string message, LogCategory category) { Logger.Write(message, category.Value); } // Usage: WriteLog("Log message", LogCategory.Info);</code>
Alternativ können direkt typsichere String-Parameter verwendet werden:
<code class="language-csharp">public static void WriteLog(string message, string category) { // Add validation to ensure category is a valid value Logger.Write(message, category); } // Usage: WriteLog("Log message", "Info");</code>
Beide Methoden verbessern die Lesbarkeit und Flexibilität des Codes und bieten praktische Alternativen zu den Einschränkungen von Standard-Enums, wenn eine Zeichenfolgendarstellung erforderlich ist. Beachten Sie, dass der zweite Ansatz eine sorgfältige Validierung erfordert, um sicherzustellen, dass nur gültige Zeichenfolgenkategorien verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich C#-Enums Strings zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!