当前位置:  开发笔记 > 编程语言 > 正文

使用ToArgb()后跟FromArgb()不会产生原始颜色

如何解决《使用ToArgb()后跟FromArgb()不会产生原始颜色》经验,为你挑选了1个好方法。

这不起作用

        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());

lc... 10

从MSDN文档Color.operator ==:

此方法比Color结构的ARGB值更多.它还对一些状态标志进行了比较.如果只想比较两个Color结构的ARGB值,请使用ToArgb方法进行比较.

我猜测州旗是不同的.



1> lc...:

从MSDN文档Color.operator ==:

此方法比Color结构的ARGB值更多.它还对一些状态标志进行了比较.如果只想比较两个Color结构的ARGB值,请使用ToArgb方法进行比较.

我猜测州旗是不同的.


@lc:状态标志不同,因为静态Blue属性返回命名颜色,而ToArgb不保留颜色命名的事实,int仅保留ARGB信息.转换回颜色时,名称会丢失,因此等于不返回true的原因.
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有