![](/img/trans.png)
[英]Geting a inverted result from using FromArgb R = B? where does this fail?
[英]Using ToArgb() followed by FromArgb() does not result in the original color
這不起作用
int blueInt = Color.Blue.ToArgb();
Color fred = Color.FromArgb(blueInt);
Assert.AreEqual(Color.Blue,fred);
有什么建議?
[編輯]
我正在使用NUnit,輸出是
失敗:
預計:顏色[藍色]
但是:顏色[A = 255,R = 0,G = 0,B = 255]
[編輯]
這有效!
int blueInt = Color.Blue.ToArgb();
Color fred = Color.FromArgb(blueInt);
Assert.AreEqual(Color.Blue.ToArgb(),fred.ToArgb());
從Color.operator ==
上的MSDN文檔Color.operator ==
:
此方法比Color結構的ARGB值更多。 它還對一些狀態標志進行了比較。 如果只想比較兩個Color結構的ARGB值,請使用ToArgb方法進行比較。
我猜測州旗是不同的。
它們不會相同,因為Color.Blue不等於你的顏色對象,它等於內部存儲的東西,“new Color(KnownColor.Blue);” 確切地說。
或者,這也有效,我認為它更直觀
[Test]
public void ColorTransform()
{
var argbInt = Color.LightCyan.ToArgb();
Color backColor = Color.FromArgb(argbInt);
Assert.AreEqual(Color.LightCyan.A, backColor.A);
Assert.AreEqual(Color.LightCyan.B, backColor.B);
Assert.AreEqual(Color.LightCyan.G, backColor.G);
Assert.AreEqual(Color.LightCyan.R, backColor.R);
}
我本來期望這與Assert.AreSame,因為拳擊與值類型,但AreEqual不應該有這個問題。
你可以添加哪種語言(我假設是C#)你的使用和測試框架?
Assert.AreEqual(true, Color.Blue == fred);
是什么Assert.AreEqual(true, Color.Blue == fred);
造成?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.