none
Flag hinzufügen RRS feed

  • Frage

  • Hallo!

    Ich habe eine Aufzählung, welche als Flag('s) fungieren soll:

    [System.Flags] public enum Umfang                       // In welchen Umfang sollen "Listen" erstellt werden?
    {
        Standard = 0,                                       // Nur Zeilen, Spalten und das range-Objekt
        strValue = 1,                                       // String-Value Liste
        strValue2 = 2,                                      // String-Value2 Liste    
        objValue = 4,                                       // Objekt-Array der Value Werte
        objValue2 = 8,                                      // Objekt-Array der Value2 Werte
    }


    Ich initialisiere eine Instanz der Aufzählung mit einem Wert:

    Umfang umfang = Umfang.Standard;
    

    Nun möchte ich dieser Instanz weitere Flags hinzufügen:

    umfang &= Umfang.strValue2;

    aber weder so noch so:

    umfang = umfang & Umfang.strValue;
    

    will mir das gelingen.

    Wie macht man es denn richtig?

    Anmerkung:

    Das Einzigste, was funktionierte, war, die Flags gleich bei der Initialisierung zuzuordnen:

    umfang = Umfang.objValue | Umfang.strValue2;
    

    Mittwoch, 6. Februar 2019 08:41

Antworten

  • Hi,
    das Ampersand ist ein logisches UND:

    strValue & strValue2 ergibt Standard, weil binär 01 UND 10 ein 00 ergeben.

    Wenn Du ein logischer ODER wünschst, dann passiert folgendes:

    strValue | strValue2 ->  binär 01 ODER 10 ergibt 11


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert perlfred Mittwoch, 6. Februar 2019 09:22
    Mittwoch, 6. Februar 2019 08:57

Alle Antworten

  • Hi,
    das Ampersand ist ein logisches UND:

    strValue & strValue2 ergibt Standard, weil binär 01 UND 10 ein 00 ergeben.

    Wenn Du ein logischer ODER wünschst, dann passiert folgendes:

    strValue | strValue2 ->  binär 01 ODER 10 ergibt 11


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert perlfred Mittwoch, 6. Februar 2019 09:22
    Mittwoch, 6. Februar 2019 08:57
  • Hallo Peter!

    1. Hast du natürlich wieder einmal Recht! mit:

    umfang |= Umfang.strValue;

        wird das weitere Flag hinzugefügt.

    2. Ein "kleiner" Prüffehler meinerseits. Standard | irgend ein Flag, ergibt irgend ein Flag, da Standard = 0.  :-)

              


    • Bearbeitet perlfred Mittwoch, 6. Februar 2019 09:34
    Mittwoch, 6. Februar 2019 09:33