System.Drawing.Color有一個專用字段int state
,這使得相等比人們期望從一個結構更棘手。System.Drawing.Color -state具有什麼值?
任何人都知道它在幹什麼?誰,爲什麼設置和讀取它?
System.Drawing.Color有一個專用字段int state
,這使得相等比人們期望從一個結構更棘手。System.Drawing.Color -state具有什麼值?
任何人都知道它在幹什麼?誰,爲什麼設置和讀取它?
據我瞭解,它是相對於theese值:
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;
所以我的投籃是其用於dertermine如果它的「系統顏色」或用戶自定義例如ARGB值。
public bool IsKnownColor
{
get { return((state & StateKnownColorValid) != 0);}
}
啊,謝謝。 :)應該已經反編譯自己.. 不得不多挖一點點,下一次我打我的頭對== .. –
的Color
結構覆蓋Equals
方法,因此並自動做正確的事情時,顏色的相等測試。
的Equals
方法比較value
,state
,knownColor
和name
字段。
顏色只是有一個空字段.http://msdn.microsoft.com/en-us/library/14w97wkc.aspx –
我的理解是,顏色結構只有一個'空'字段。 http://msdn.microsoft.com/en-us/library/system.drawing.color_fields.aspx。但是在.NET 3.5中,它似乎在CSharpie中被內部使用。 – Chimera