Probleme mit konstante Color

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Probleme mit konstante Color

    Hi Forum,
    ich bin gerade dabei den Quellcode meines Projekts ein wenig aufzuräumen und bin da über etwas gestolpert, was sich scheinbar nicht so einfach lösen lässt.
    Dazu wollte ich u.a. auch die "isNothing"-Funktion durch "Var Is Nothing" ersetzen, was in den meisten Fällen auch ging. Bei der Color-Struktur allerdings gibt es ein Problem.
    Gibt es eine Möglichkeit einem optionalen Parameter vom Typ (Structure) "System.Drawing.Color" einen Konstanten Wert zu geben?

    VB.NET-Quellcode

    1. Private Sub SetLabelColors(ByVal Label As Label, Optional ByVal ForeColor As Color = Nothing, Optional ByVal BackColor As Color = Nothing)
    2. If IsNothing(ForeColor) Then
    3. ForeColor = Color.Black
    4. End If
    5. 'If ForeColor Is Nothing Then 'Der Is-Operator akzeptiert keine Operanden vom Typ "Color". Die Operanden müssen Referenztypen sein oder Typen, die NULL-Werte zulassen.
    6. ' ForeColor = Color.Black
    7. 'End If
    8. If IsNothing(BackColor) Then
    9. BackColor = Color.Black
    10. End If
    11. Label.ForeColor = ForeColor
    12. Label.BackColor = BackColor
    13. End Sub
    Warum nicht einfach = statt Is

    VB.NET-Quellcode

    1. If ForeColor = Nothing Then
    2. ForeColor = Color.Black
    3. End If
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @evolver Oder überladen:

    VB.NET-Quellcode

    1. Private Sub SetLabelColors(Label As Label)
    2. SetLabelColors(Label, Color.White)
    3. End Sub
    4. Private Sub SetLabelColors(Label As Label, ForeColor As Color)
    5. SetLabelColors(Label, ForeColor, Color.Black)
    6. End Sub
    7. Private Sub SetLabelColors(Label As Label, ForeColor As Color, BackColor As Color)
    8. Label.ForeColor = ForeColor
    9. Label.BackColor = BackColor
    10. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich mir schon. Hab's ja ausprobiert, bevor ich es gepostet hab ;)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.