Por Qué El Color.FromArgb(255, 255, 255, 255) es no igual a Color.Blanco ? Es allí cualquier manera integrada de comparar sólo Una,R,G,B valores y no los nombres de los colores?

Gracias.

OriginalEl autor abenci | 2010-11-16

2 Comentarios

  1. 17

    Ver http://msdn.microsoft.com/en-us/library/e03x8ct2(VS.85).aspx

    Esta estructura sólo hace comparaciones
    con otro Color de estructuras. A
    comparar los colores basándose únicamente en su
    ARGB de valores, debe utilizar el ToArgb
    método. Esto es debido a los Iguales y
    op_Equality miembros determinar
    equivalencia de uso de algo más que la
    ARGB valor de los colores. Por ejemplo,
    Negro y FromArgb(0,0,0) no son
    consideran iguales, ya que el Negro es un
    nombre color y FromArgb(0,0,0) es
    no.

    Para añadir a esto la clase de color en el Sistema.Windows.Los medios de comunicación es, o equivalente, en ARGB » del Sistema.Windows.Los medios de comunicación.Color.FromArgb(255, 255, 255, 255) == Sistema.Windows.Los medios de comunicación.Colores.Blanco’ hace igual a true

    OriginalEl autor Nick

  2. 5

    Para agregar a Nick (correcto) respuesta: si realmente quería, podría escribir su propio IEqualityComparer<Color> la implementación y el uso que en, por ejemplo, cualquiera de los algoritmos puede ser escrito que lidiar con los colores, en la que desea flexibilidad cuando se trata de color de igualdad de determinación.

    Sabes, algo así como:

    public class ColorComparer : IEqualityComparer<Color>
    {
        public bool Equals(Color x, Color y)
        {
            return x.ToArgb() == y.ToArgb();
        }
    
        public int GetHashCode(Color color)
        {
            return color.ToArgb();
        }
    }

    OriginalEl autor Dan Tao

Dejar respuesta

Please enter your comment!
Please enter your name here