System.Drawing.Color有一个私有字段int state,这使得相等性比人们期望的结构更加棘手。
有人知道它到底是用来干嘛的吗?谁,什么和为什么设置和阅读它?
发布于 2012-11-01 00:49:05
据我所知,它是与以下价值观进行比较的:
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;http://reflector.webtropy.com/default.aspx/Net/Net/3@5@50727@3053/DEVDIV/depot/DevDiv/releases/whidbey/netfxsp/ndp/fx/src/CommonUI/System/Drawing/Color@cs/1/Color@cs
因此,我的想法是,它用于确定它是“系统颜色”还是用户根据ARGB值定义的颜色。
public bool IsKnownColor
{
get { return((state & StateKnownColorValid) != 0);}
}发布于 2012-11-01 01:54:33
Color结构覆盖了Equals方法,因此在测试颜色是否相等时,它会自动执行正确的操作。
Equals方法比较value、state、knownColor和name字段。
https://stackoverflow.com/questions/13162801
复制相似问题