BEARBEITEN: Dies ist jetzt live in Version 0.0.0.2 von UnconstrainedMelody.
(Wie in meinem Blog-Beitrag zu Aufzählungsbeschränkungen angefordert . Ich habe die folgenden grundlegenden Fakten hinzugefügt, um eine eigenständige Antwort zu erhalten.)
Die beste Lösung ist, darauf zu warten, dass ich es in UnconstrainedMelody 1 einbinde . Dies ist eine Bibliothek, die C # -Code mit "falschen" Einschränkungen wie z
where T : struct, IEnumConstraint
und verwandelt es in
where T : struct, System.Enum
über einen Postbuild-Schritt.
Es sollte nicht zu schwer zu schreiben sein IsSet
... obwohl es schwierig sein könnte, sowohl auf der Int64
Basis als auch auf der UInt64
Basis von Flags zu arbeiten. (Ich rieche einige Hilfsmethoden, die es mir ermöglichen, alle Flaggen so zu behandeln, als ob sie einen Basistyp hättenUInt64
.)
Was möchten Sie, wenn Sie anrufen?
tester.IsSet(MyFlags.A | MyFlags.C)
? Sollte überprüft werden, ob alle angegebenen Flags gesetzt sind? Das wäre meine Erwartung.
Ich werde versuchen, dies heute Abend auf dem Heimweg zu tun ... Ich hoffe, einen kurzen Einblick in nützliche Aufzählungsmethoden zu bekommen, um die Bibliothek schnell auf einen brauchbaren Standard zu bringen, und mich dann ein wenig zu entspannen.
EDIT: Ich bin mir IsSet
übrigens nicht sicher , wie es heißt. Optionen:
- Beinhaltet
- Enthält
- HasFlag (oder HasFlags)
- IsSet (es ist sicherlich eine Option)
Gedanken willkommen. Ich bin mir sicher, dass es eine Weile dauern wird, bis irgendetwas in Stein gemeißelt ist ...
1 oder als Patch einreichen, natürlich ...