Heim >Backend-Entwicklung >C++ >Wie kann ich C#-Enums Strings zuordnen?

Wie kann ich C#-Enums Strings zuordnen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-13 18:06:47819Durchsuche

How Can I Map C# Enums to Strings?

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!

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