Michael -

|| und && sind logische Verknüpfungen, für Flags musst Du die bitweise Verknüpfung
benutzen - also | und &.
Um zu prüfen, ob ein Flag gesetzt ist, maskierst Du den Test-Wert mit dem Flag
mit einer Und-Verknüpfung - der Wert muss dann dem Flag entsprechen.
Du kannst auch auf int casten und auf ungleich 0 vergleichen:

       [Flags]
private enum SearchScopeEnum { EU = 1, AP = 4, NA = 8, All = EU | NA | AP };

       static void Main(string[] args)
       {
           // EU und AP, bitwise or; binär: 0001 | 0100 = 0101
SearchScopeEnum EUundAP = SearchScopeEnum.AP | SearchScopeEnum.EU;

           // EU
           if ( (EUundAP & SearchScopeEnum.EU) == SearchScopeEnum.EU) {
               Debug.WriteLine("EU");
           }
// EU, alternativ
           if ( (int)(EUundAP & SearchScopeEnum.EU) > 0) {
               Debug.WriteLine("EU");
           }

           if ( (EUundAP & SearchScopeEnum.AP) == SearchScopeEnum.AP) {
               Debug.WriteLine("AP");
           }

           if ( (EUundAP & SearchScopeEnum.NA) == SearchScopeEnum.NA) {
               Debug.WriteLine("NA");
           }
       }

Warum fehlt eigentlich die 2? Du könntest auch noch NONE=0 einführen:

if ( (EUundAP & SearchScopeEnum.NA) != SearchScopeEnum.NONE) {
               Debug.WriteLine("NA");
}

Gruss,
Florian
--
www.kruesch.de





_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an