Compare two Color objects

dotNET picture dotNET · Jan 8, 2014 · Viewed 13.9k times · Source

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?

EDIT

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.

Answer

Tim Schmelter picture Tim Schmelter · Jan 8, 2014

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"