This is VS2010 and .NET 4.0. I'm trying to compare two System.Drawing.Color
objects.
The value of mStartColor.ToArgb()
is 16777215
.
The value of Color.Transparent.ToArgb()
is 16777215
.
The value of mStartColor <> Color.Transparent
is True
.
How is equality implemented for Color
objects?
Thanks everyone. I got my answer, though it doesn't make much sense to me (see my comments to Tim's and Dave's answers below). I'll mark Tim's post as the answer and he was the first to reply, but Dave's answer is equally informative.
The most common method would be a visual color comparison by looking at two physical color samples side by side under a light source. Color is very relative, so you can compare colors in terms of the other color across dimensions such as hue, lightness and saturation (brightness).
Equals or Color- == is used everywhere. So even if a color look like another it's not the same if it hasn't for example the same name or the same KnownColor .
Always read the documentation first:
"To compare colors based solely on their ARGB values, you should use the ToArgb method. This is because the Equals and Equality members determine equivalency using more than just the ARGB value of the colors. For example, Black and FromArgb(0,0,0) are not considered equal, since Black is a named color and FromArgb(0,0,0) is not"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With