3

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

 string _someString;

 public string MyString
  {
     get
       {
          return _someString;
       }

   }

我希望这个属性只保存某些值。因此,当客户端使用此属性时,只能使用那些特定的值。

4

3 回答 3

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();
于 2013-02-13T19:51:28.393 回答
2

使用枚举,如:

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

public MyEnum myEnum { get; set; }

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

于 2013-02-13T19:52:33.667 回答
0

我想你想对 setter 进行一些验证:

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

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

于 2013-02-13T19:51:21.127 回答