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