public ulong Exchange(ulong value) { long value_ = Calculate (value); long original = Interlocked.Exchange (ref _value, value_); return Calculate (original); }