public
class
OriginalObject
{
public
string
String1 {
get
;
set
; }
public
string
String2 {
get
;
set
; }
public
Memento MyMemento {
get
;
set
; }
public
OriginalObject(
string
str1,
string
str2)
{
this
.String1 = str1;
this
.String2 = str2;
this
.MyMemento =
new
Memento(str1, str2);
}
public
void
Revert()
{
this
.String1 =
this
.MyMemento.String1;
this
.String2 =
this
.MyMemento.String2;
}
}
public
class
Memento
{
public
string
String1 {
get
;
set
; }
public
string
String2 {
get
;
set
; }
public
Memento(
string
str1,
string
str2)
{
this
.String1 = str1;
this
.String2 = str2;
}
}
Here you can see the Memento object is actually used to revert the changes made in the object.