我有一个对象ex: string str,我想在它两次更改其值后将其设置为只读,如此处所示string str="hello world";str="hello";str="hi";//goodstr="sup";//error但我也希望能够更改值可以分配给对象的次数,例如:string str[limit 2]="hello world";str="hello";str="hi";//goodstr[limit++];str="sup";//good是否可以?
1 回答
冉冉说
TA贡献1877条经验 获得超1个赞
不使用字符串,但创建一个具有为您提供此类控制的属性的类非常容易:
class IrregularVariableConstThingy
{
private int _changeCount = 0;
private string _value;
public IrregularVariableConstThingy(int maxChangeCount)
{
MaxChangeCount = maxChangeCount;
}
public int MaxChangeCount {get;set;}
public string Value {
get {
return _value;
}
set {
if(_changeCount = MaxChangeCount)
{
throw new Exception("Now you can't change my value!");
}
_changeCount++;
_value = value;
}
}
}
请注意,此实现不是线程安全的,也不推荐,但它确实演示了基本概念。
- 1 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消