![](/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.