强制变量仅保留某些值

时间:2013-02-13 19:48:08

标签: c#

我正在使用vs 2012.我有一个简单的字符串属性

 string _someString;

 public string MyString
  {
     get
       {
          return _someString;
       }

   }

我希望此属性仅包含某些值。因此,当客户端使用此属性时,只能使用某些值。

3 个答案:

答案 0 :(得分:3)

听起来你想要的是enum

public enum MyValues //TODO rename all the things
{
    SomeValue,
    SomeOtherValue,
    FinalValue,
}

然后你的财产可以是:

private MyValues value;
public  MyValues MyValue
{
    get { return value; }
}

如果您需要获取该值的字符串表示,只需在枚举值上调用ToString

string stringValue = value.ToString();

答案 1 :(得分:2)

使用枚举,如:

enum MyEnum
{
AllowableValue#1,
AllowableValue#2,
...
}

public MyEnum myEnum { get; set; }

然后仅使用枚举值填充一些UI元素。

答案 2 :(得分:0)

我想你想在setter上进行一些验证:

public string MyString
{
    get
    {
        return _someString;
    }
    set
    {
        if (value == "a" || value == "b" /* ... */)
            _someString = value;
        else
            throw new InvalidArgumentException("Invalid value!");
    }
}

确保通过属性设置它,而不是实际的成员变量。