自定义数据类型
问题描述:
我想创建一些自定义数据类型,但我不认为我在问正确的问题。自定义数据类型
在整个.NET中都使用了“复合布尔”值,我想设计一些我自己的。 我一直在使用一系列的布尔变量,它的工作原理,但只是不一样。
从.NET的例子包括: Color.Black Alignment.Centered [fontProperties] .Bold * *我忘记了实际的名字,但你的想法
我想要是这样的:
ColorSortQualities
- 无
- DistinguishColor
- DistinguishNumberOfColors
- DistinguishColorPattern
一旦这样被宣布,我可以这样做:如果 (searchOptions.ColorSortQualities == DistinguishColor) [做的东西]
这是什么叫什么?
谢谢!
答
这就是所谓的枚举,并在C#中使用关键字。
+0
完美!正是我在找什么。再次感谢 – 2010-04-10 19:41:25
答
我想你想要一个枚举与[Flags]
属性。
[Flags]
enum ColorSortQualities
{
None = 0x0,
DistinguishColor = 0x1,
DistinguishNumberOfColors = 0x2,
DistinguishColorPattern = 0x4
}
这将让调用者指定这些的任意组合,每个组合将被实现为位标志。请注意,这将允许32个选项,因为int是一个32位的数量。
你的状态代码是这样:
if((searchOptions & ColorSortQualities.DistinguishColor) == ColorSortQualities.DistinguishColor)
如果这不是你所说的“一系列布尔变量”的意思是,请澄清。
答
使用枚举:
enum ColorSortQualities
{
None,
DistinguishColor,
DistinguishNumberOfColors,
DistinguishColorPattern
};
是否有可能同时具有'DistinguishColor'和'DistinguishColorPattern',还是它们是互斥的? – 2010-04-10 19:37:29