微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#:从枚举到类的自动转换

考虑这种情况.

>有一个结构颜色(由其他人编写)
>有枚举ColorCode,它实现了html命名的颜色代码.
>有一个将ColorCode转换为Color的静态函数
>我希望能够做到这一点:

Color tmp = ....;
tmp = ColorCode.Aqua;

如何在没有复制粘贴文本140次的情况下执行此操作?

只要上面的代码行,我就不在乎ColorCode是什么(枚举,类,等等).

问题:

C#不允许我为枚举定义运算符.
我也没有任何宏来在ColorCode中制作一些漂亮的人类可读表格.

限制:

ColorCode的内容应该以int的形式提供,但应该可以分配/转换为Color.

代码片段:

public enum ColorCode{
    AliceBlue = 0xF0F8FF,
    AntiqueWhite = 0xFAEBD7,
    Aqua = 0x00FFFF,
    Aquamarine = 0x7FFFD4,
    Azure = 0xF0FFFF,  ///Repeat 140 times
    ...
}

public static Color colorFromCode(ColorCode code){
 ....
}

解决方法:

你可以在枚举上写一个扩展方法

public static Color ToColor(this ColorCode colorCode)
{
    ...
}

然后你可以:

Color tmp = ColorCode.Aqua.ToColor();

它不是一个隐含的转换,但它可以像你可能获得的那样可读.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐