创建类并从常量列表中进行选择

时间:2017-05-17 17:54:59

标签: c#

我试图定义一个类和一个我希望从有限的常量列表中提取的参数,这些常量有点像字典。我不确定该怎么称呼它或搜索,但我想我已经看到一些内置的类使用它。

原因在于我使用的API需要以某种方式构建此类并使用许多不具备可读性的数字。我宁愿使用有意义的单词创建对象而不是它带有的ID号。

示例:包含= 2,不包含= 5,大于= 3,小于= 4等。

TestClass foo = new TestClass(CONTAINS," hello world");

我喜欢这样操作类似字典,以便其余代码将第一个参数视为' 2'而不是字符串" CONTAINS"

我是不是想到了或者这可能吗?谢谢!

1 个答案:

答案 0 :(得分:2)

这是enum。如果您愿意,可以让编译器分配任意数值:

public enum MyOperator {
    Contains,
    DoesNotContain,
    GreaterThan,
    LessThan
}

public class TestClass {
    public TestClass(MyOperator op, Object operand) {
        this.Operator = op;
        this.Operand = operand;
    }

    public MyOperator Operator { get; set; }
    public Object Operand { get; set; }

如果您有以下理由,可以指定数值:

public enum MyOperator {
    Contains = 2,
    DoesNotContain = 5,
    GreaterThan = 3,
    LessThan = 4
}

明确施展:

int x = (int)MyOperator.LessThan;

同样字符串化:

public void F(MyOperator op) {
    MessageBox.Show(op.ToString());
}

也许Operand应该是字符串,或者整个事情应该是通用的,但你没有说。这是一个例子。