


Wie können wir das Fehlen generischer Enum-Einschränkungen in C# umgehen?
C#-Alternative zu generischen Aufzählungseinschränkungen
Bei der C#-Programmierung kann das Fehlen generischer Enum-Einschränkungen zu Herausforderungen führen, wenn versucht wird, bestimmte Operationen an Flag-Enumerationen auszuführen. Um dieses Problem zu lösen, schauen wir uns eine Problemumgehung mithilfe der UnconstrainedMelody-Bibliothek an.
UnconstrainedMelody wandelt „pseudo“ generische Einschränkungen in „echte“ Einschränkungen um. Zum Beispiel wäre es:
<code>where T : struct, IEnumConstraint</code>
Konvertieren in:
<code>where T : struct, System.Enum</code>
Dadurch können Entwickler Methoden definieren wie:
<code>public static bool IsSet<T>(this T input, T matchTo) where T : System.Enum { return (input & matchTo) != 0; }</code>
Mit dieser Methode können Sie:
<code>MyEnum tester = MyEnum.FlagA | MyEnum.FlagB; if (tester.IsSet(MyEnum.FlagA)) // 对标志 a 执行操作</code>
UnconstrainedMelody lässt sich nahtlos integrieren, nachdem die Post-Build-Schritte abgeschlossen sind.
Berücksichtigen Sie jedoch das Verhalten der Methode „IsSet“, wenn mehrere Flags angegeben sind:
<code>tester.IsSet(MyFlags.A | MyFlags.C);</code>
Sollte überprüft werden, ob alle Flags gesetzt sind oder nur eines? Das empfohlene Verhalten besteht darin, alle Flags zu überprüfen.
UnconstrainedMelody bietet mehrere Benennungsoptionen für diese Methode:
- Inklusive
- Enthält
- HasFlag/HasFlags
- IsSet
Der Name „IsSet“ funktioniert zwar, Feedback ist jedoch willkommen. Bitte beachten Sie, dass sich diese Problemumgehung ändern kann und UnconstrainedMelody Patches oder direkte Einsendungen begrüßt.
Das obige ist der detaillierte Inhalt vonWie können wir das Fehlen generischer Enum-Einschränkungen in C# umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?
