考虑这种情况.
>有一个结构颜色(由其他人编写)
>有枚举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();
它不是一个隐含的转换,但它可以像你可能获得的那样可读.
原文地址:https://codeday.me/bug/20190715/1466265.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。