有没有更好的方法来检查有效值?

Tes*_*101 0 c# properties

我的类中有一个属性,它只能是多个值中的一个,限制此属性输入的最佳方法是什么.

这就是我现在正在做的事情,我相信一定有更好的方法.

public void SetValue(int value)
{
    if(value != 1 || 
        value != 4 || 
        value != 8 || 
        value != 16 || 
        value != 32 || 
        value != 64, || 
        value != 128)
    {
        property_value = 1;
    }
    else
    {
        property_value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 5

而不是in int,使用Enumwith这些值.

我确信每个值都有特定的含义 - 将它们作为枚举成员公开.

这可能不会消除所有问题(因为Enum它只是一个整数类型的包装器,并且仍然可以分配一个枚举中不存在的值),但是应该处理大多数问题,只要你只是一致的从枚举本身传递值.

无论如何,您可以简单地针对枚举测试传入的值,如果它不是有效成员则抛出异常.