text: public virtual TValue SetValue(TValue value){if (!allowModify){throw new NotSupportedException();}TValue old = outerInstance.values[lastPos].Value;outerInstance.values[lastPos].Value = value;return old;}