Color Klasse
-
Hallo,
wieso ist denn die Color Klasse nur per get verfügbar?
Stattdessen gibt es eine statische fromRGB Methode um eine neue Color zuzuweisen.
Muss ich das verstehen ?
-
Hallo,
zum ersten verstehe ich deine frage nicht so ganz. Zum anderen handelt es sich bei Color um ein Struct und nicht um eine Klasse.
Das Struct hat schon einige viele "statische" vordefinierte Farben z.B. Color.Black.
Willst du zum Beispiel einem Control eine Hintergrundfarbe zuweisen würde folgendes reichen:
// Lege hintergrundfarbe gelb fest myControl.BackColor = Color.Yellow;
Die Methoden "FromArgb", "FromKnownColor" und "FromName" braucht man eher selten. "FromArgb" kann ich mir zum Beispiel vorstellen, wenn man den Alphawert ändern will (zwecks Transparenz).
Die Methode "FromName" macht nichts anderes als die Farbe anhand ihres Namens zu ermitteln.
// dabei entspricht die zeile Color myColor = Color.FromName("Black"); // inhaltlich dieser Color mysecondColor = Color.Black;
Für weitere Informationen solltest du genauer rausrücken, wo du Verständnisprobleme hast.
-
Das Struct Color ist nur per get Methode erreichbar, aber es gibt keine Set methode.
Folglich geht z.B. sowas nicht.
Color mycol = new Color(); mycol.R = 10; mycol.G = 10; mycol.B = 10;
-
Genau. Und warum das so ist , das wollte ich wissen.
Um eine Farbe zu setzen muss man glaub ich
Color newCol = Color.FromARgb(10,10,10);
machen
-
Uli103 schrieb:
wieso ist denn die Color Klasse nur per get verfügbar?
(...)
Muss ich das verstehen ?Nein, musst du nicht verstehen.
Es ist so, weil es so ist.Ich vermute der Grund sind die Coding-Guidelines von MS die sagen dass public fields pfui sind und value types sowieso am besten immutable sein sollten. Beide Regeln machen zwar bei so Sachen wie Color mMn. keinen rechten Sinn, aber naja.