2010-11-16 53 views

回答

17

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

這種結構不僅會比較 與其他顏色的結構。要 比較僅基於其 ARGB值的顏色,應該使用ToArgb 方法。這是因爲等於和 op_Equality成員使用不止顏色的 ARGB值確定 等效性。例如, 黑色和FromArgb(0,0,0)不是 視爲相等,因爲黑色是 命名顏色,而FromArgb(0,0,0)不是 。

+5

只需添加到這個顏色類System.Windows.Media *爲*等同於ARGB「System.Windows.Media.Color.FromArgb(255,255 ,255,255)== System.Windows.Media.Colors.White'does equal equal true – 2010-11-16 14:33:10

4

要添加到尼克的(正確的)答案:如果你真的願意,你可以寫自己的IEqualityComparer<Color>的實施和使用,在,例如,你可能會寫那筆交易與任何顏色的算法,您希望靈活性,當談到顏色平等決心。

你知道的,是這樣的:

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(); 
    } 
}