kostenloser Webspace werbefrei: lima-city


C# Color enum

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    marius71

    marius71 hat kostenlosen Webspace.

    Hi,
    ich möchte ein Farb-enum erstellen.
    Beispiel:
    enum erlaubteFarben {Rot = Color.Red, Blau = Color.Blue};


    Um in einer Funktion sicherzustellen das als Parameter nur Farben aus dem Farb enum übergeben werden.
    Beispiel:
    void F(erlaubteFarben f) {/* ... */}


    Ein Aufruf der Funktion könnte dann so aussehen:
    F(erlaubteFarben.Rot);


    Enum lässt aber keine Color Typen zu
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    richtig. Enum ist eine Aufzählung von Nummern.
    Man kann muss aber nicht einen Integer angeben.

    Wenn man alle Eigenschaften in einem Enum mit einem Wert versieht, besitzen die Eigenschaft auch diesen Value.
    Wenn man nur den ersten beschreibt werden alle anderen folgenden hochgezählt.
    Wenn man nur einen beschreibt, besitzt auch nur dieser den Wert alle anderen automatisch zugewiesen und es kann vorkommen, dass ein Wert doppelt vorkommt.

    Aber nun mal zu deinem Problem:

    Ja leider ist das so nicht möglich, fraglich, warum nimmst du als Funktionsparameter nicht einfach System.Drawing.Color?

    Sonst musst du in einer vorgelagerten Funktion deinen Enum in einen System.Drawing.Color switchen und an die eigentliche Funktion übergeben.



    Gruß
    Trancedrome
  4. Ich denke mal, er will nur bestimmt Farben ermöglichen. Ich würde das so machen (ungetestet):

    class specificColor
    {
        public enum colors
        {
            red,
            green,
            //...
        }
        public colors color;
        public Color sysdrawcolor
        {
            get
            {
                switch (color)
                {
                    case colors.red: return Color.Red;
                    case colors.red: return Color.Red;
                    //...
                }
                //Damit der Get-Accessor auf jeden Fall einen Rückgabewert hat
                return Color.Black;
            }
        }
    }
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!