2012-10-31 39 views
1

System.Drawing.Color有一個專用字段int state,這使得相等比人們期望從一個結構更棘手。System.Drawing.Color -state具有什麼值?

任何人都知道它在幹什麼?誰,爲什麼設置和讀取它?

+0

顏色只是有一個空字段.http://msdn.microsoft.com/en-us/library/14w97wkc.aspx –

+0

我的理解是,顏色結構只有一個'空'字段。 http://msdn.microsoft.com/en-us/library/system.drawing.color_fields.aspx。但是在.NET 3.5中,它似乎在CSharpie中被內部使用。 – Chimera

回答

4

據我瞭解,它是相對於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; 

http://reflector.webtropy.com/default.aspx/Net/Net/[email protected]@[email protected]/DEVDIV/depot/DevDiv/releases/whidbey/netfxsp/ndp/fx/src/CommonUI/System/Drawing/[email protected]/1/[email protected]

所以我的投籃是其用於dertermine如果它的「系統顏色」或用戶自定義例如ARGB值。

public bool IsKnownColor 
{ 
    get { return((state & StateKnownColorValid) != 0);} 
} 
+0

啊,謝謝。 :)應該已經反編譯自己.. 不得不多挖一點點,下一次我打我的頭對== .. –

1

Color結構覆蓋Equals方法,因此並自動做正確的事情時,顏色的相等測試。

Equals方法比較valuestateknownColorname字段。

相關問題