1.19 Ermitteln, ob ein oder mehr Enumerations-Flags gesetzt sind
Problem
Sie müssen ermitteln, ob eine Variable eines Enumerationstyps, der aus Bit-Flags besteht, ein bestimmtes oder mehrere bestimmte Flags enthält. Setzen wir beispielsweise die folgende Enumeration Language
voraus:
[Flags] enum Language { CSharp = 0x0001, VBNET = 0x0002, VB6 = 0x0004, Cpp = 0x0008 }
Dann können Sie Boolesche Logik verwenden, um zu prüfen, ob die Variable lang
in der folgenden Codezeile eine der Sprachen Language.CSharp
und Language.Cpp
oder beide enthält:
Language lang = Language.CSharp | Language.VBNET;
Lösung
Verwenden Sie die folgende Abfrage, um zu prüfen, ob in einer Variable ein bestimmtes Bit gesetzt ist:
if((lang & Language.CSharp) == Language.CSharp) { // lang ...
Get C# Kochbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.