public V setValue(V value) {if (!allowModify)throw new UnsupportedOperationException();V old = values[lastPos];values[lastPos] = value;return old;}

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