gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:26:08 25 4
gpt4 key购买 nike

考虑这种情况。

  1. 有一个struct Color(别人写的)
  2. enum ColorCode 实现了 html 命名的颜色代码。
  3. 有一个静态函数可以将 ColorCode 转换为 Color
  4. 我希望能够做到这一点:

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

它不完全是隐式转换,但它具有您可能获得的可读性。

关于C#:从枚举到类的自动转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31324409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com