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