我正在使用 vs 2012。我有一个简单的字符串属性
string _someString;
public string MyString
{
get
{
return _someString;
}
}
我希望这个属性只保存某些值。因此,当客户端使用此属性时,只能使用那些特定的值。
我正在使用 vs 2012。我有一个简单的字符串属性
string _someString;
public string MyString
{
get
{
return _someString;
}
}
我希望这个属性只保存某些值。因此,当客户端使用此属性时,只能使用那些特定的值。
听起来您真正想要的是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();
使用枚举,如:
enum MyEnum
{
AllowableValue#1,
AllowableValue#2,
...
}
public MyEnum myEnum { get; set; }
然后仅使用枚举的值填充一些 UI 元素。
我想你想对 setter 进行一些验证:
public string MyString
{
get
{
return _someString;
}
set
{
if (value == "a" || value == "b" /* ... */)
_someString = value;
else
throw new InvalidArgumentException("Invalid value!");
}
}
确保通过属性设置它,而不是实际的成员变量。