Reputation: 1356
I need to store a current value of an object and its previous value. I came up with something like this:
struct TwoStepHistory<T>
{
private T _v0;
public T Value
{
get
{
return _v0;
}
set
{
OldValue = _v0;
_v0 = value;
}
}
public T OldValue { get; private set; }
}
But it looks so obvious and simple that I thought there must be something in BCL or elsewhere in dotnet doing the same. Don't want to reinvent a bicycle, you know. Does anyone know about a similar structure?
There were some comments whether this is usable for reference type, and here is an example, everything works, not sure why people get confused. https://dotnetfiddle.net/BSm1Pz, v2 with target object mutation: https://dotnetfiddle.net/DGkAgv
Upvotes: 4
Views: 484
Reputation: 136154
No, there is nothing in the BCL to support this. It is an implementation detail better left to application developers than the base library.
A couple of notes:
Upvotes: 2