我正在使用vs 2012.我有一个简单的字符串属性
string _someString;
public string MyString
{
get
{
return _someString;
}
}
我希望此属性仅包含某些值。因此,当客户端使用此属性时,只能使用某些值。
答案 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!");
}
}
确保通过属性设置它,而不是实际的成员变量。