gpt4 book ai didi

c# - 为枚举值生成常量

转载 作者:行者123 更新时间:2023-11-30 15:06:55 26 4
gpt4 key购买 nike

我需要将枚举条目的一些属性存储在它们的常量中。例如,指示颜色是冷色还是暖色。

enum Colors
{
Yellow, // warm
Blue, // cold
Gray, // cold
Red, // warm
// etc.
}

在 C++ 中,我会定义一个宏来为常量生成位掩码。像这样的东西:

#define WARM 1
#define COLD 0

#define MAKECOLOR(index, type) ((index << 8) | type)

enum Colors
{
Yellow = MAKECOLOR(0, WARM),
Blue = MAKECOLOR(1, COLD),
Gray = MAKECOLOR(2, COLD),
Red = MAKECOLOR(3, WARM),
// etc.
}

在 C# 中这是不可能的,因为没有宏。我想避免直接在枚举中编写位掩码表达式。像这样:

  ...
Gray = ((2 << 8) | 0),
...

有什么想法吗?

附言
是的,我是一个句法糖怪。 :D

最佳答案

您应该在枚举值处使用属性。看这篇文章,很不错:

http://www.codeproject.com/KB/cs/enumwithdescription.aspx

希望对您有所帮助!

关于c# - 为枚举值生成常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7107387/

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