自定义数据类型

时间:2010-04-10 19:25:59

标签: c# .net enums types

我想创建一些自定义数据类型,但我认为我没有问正确的问题。

.NET中使用了“复合布尔”值,我想设计一些自己的值。 我一直在使用一系列布尔变量,这些变量有效,但不一样。

.NET中的示例包括: Color.Black Alignment.Centered [fontProperties] .Bold * *我忘记了实际的名字,但你明白了

我想做这样的事情:

ColorSortQualities

  • DistinguishColor
  • DistinguishNumberOfColors
  • DistinguishColorPattern

宣布之后,我可以这样做: if(searchOptions.ColorSortQualities == DistinguishColor) [做东西]

这叫什么?

谢谢!

3 个答案:

答案 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)

如果这不是“一系列布尔变量”的意思,请澄清。