爲什麼Color.FromArgb(255,255,255,255)是而不是等於Color.White?有沒有比較只有A,R,G,B值而不是顏色名稱的內置方法?爲什麼Color.FromArgb(255,255,255,255)!= Color.White?
謝謝。
爲什麼Color.FromArgb(255,255,255,255)是而不是等於Color.White?有沒有比較只有A,R,G,B值而不是顏色名稱的內置方法?爲什麼Color.FromArgb(255,255,255,255)!= Color.White?
謝謝。
見http://msdn.microsoft.com/en-us/library/e03x8ct2(VS.85).aspx
這種結構不僅會比較 與其他顏色的結構。要 比較僅基於其 ARGB值的顏色,應該使用ToArgb 方法。這是因爲等於和 op_Equality成員使用不止顏色的 ARGB值確定 等效性。例如, 黑色和FromArgb(0,0,0)不是 視爲相等,因爲黑色是 命名顏色,而FromArgb(0,0,0)不是 。
要添加到尼克的(正確的)答案:如果你真的願意,你可以寫自己的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();
}
}
只需添加到這個顏色類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