我想创建一些自定义数据类型,但我认为我没有问正确的问题。
.NET中使用了“复合布尔”值,我想设计一些自己的值。 我一直在使用一系列布尔变量,这些变量有效,但不一样。
.NET中的示例包括: Color.Black Alignment.Centered [fontProperties] .Bold * *我忘记了实际的名字,但你明白了
我想做这样的事情:
ColorSortQualities
宣布之后,我可以这样做: if(searchOptions.ColorSortQualities == DistinguishColor) [做东西]
这叫什么?
谢谢!
答案 0 :(得分:5)
使用枚举:
enum ColorSortQualities
{
None,
DistinguishColor,
DistinguishNumberOfColors,
DistinguishColorPattern
};
答案 1 :(得分:4)
它被称为枚举,在C#中,您使用关键字enum
。
答案 2 :(得分:3)
我认为你想要一个[Flags]
属性的枚举。
[Flags]
enum ColorSortQualities
{
None = 0x0,
DistinguishColor = 0x1,
DistinguishNumberOfColors = 0x2,
DistinguishColorPattern = 0x4
}
这将让调用者指定这些的任意组合,每个组合将被实现为位标志。请注意,这将允许32个选项,因为int是32位数量。
您的条件代码如下:
if((searchOptions & ColorSortQualities.DistinguishColor) == ColorSortQualities.DistinguishColor)
如果这不是“一系列布尔变量”的意思,请澄清。