установить объект как «только для чтения» после указанного количества значений - PullRequest
1 голос
/ 27 июня 2019

У меня есть объект 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

это возможно?

1 Ответ

3 голосов
/ 27 июня 2019

Не со строкой, но довольно просто создать класс со свойством, которое предоставляет вам такой элемент управления:

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;
        }
    }
}

Обратите внимание, что эта реализация не является поточно-ориентированной и не рекомендуется, но она демонстрируетосновная концепция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...