System.Drawing.Color 有一个私有字段int state
,这使得相等比人们对结构的期望要复杂一些。
有谁知道它到底是干什么用的?谁,什么以及为什么设置和阅读它?
System.Drawing.Color 有一个私有字段int state
,这使得相等比人们对结构的期望要复杂一些。
有谁知道它到底是干什么用的?谁,什么以及为什么设置和阅读它?
据我了解,它与这些值进行比较:
private static short StateKnownColorValid = 0x0001;
private static short StateARGBValueValid = 0x0002;
private static short StateValueMask = (short)(StateARGBValueValid);
private static short StateNameValid = 0x0008;
private static long NotDefinedValue = 0;
所以我的镜头是它用于确定它是“系统颜色”还是从例如 ARGB 值定义的用户。
public bool IsKnownColor
{
get { return((state & StateKnownColorValid) != 0);}
}
该Color
结构覆盖该Equals
方法,因此在测试颜色是否相等时会自动执行正确的操作。
该Equals
方法比较value
、state
和knownColor
字段name
。