猿问

在给定指定数量的值后将对象设置为“只读”

我有一个对象ex: string str,我想在它两次更改其值后将其设置为只读,如此处所示


string str="hello world";

str="hello";

str="hi";

//good

str="sup";

//error

但我也希望能够更改值可以分配给对象的次数,例如:


string str[limit 2]="hello world";

str="hello";

str="hi";

//good

str[limit++];

str="sup";

//good

是否可以?


慕沐林林
浏览 118回答 1
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;        }    }}请注意,此实现不是线程安全的,也不推荐,但它确实演示了基本概念。
随时随地看视频慕课网APP
我要回答