Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
202
|
Chapter 3: Classes and Structures
savedState.Add(memento);
}
public int Count
{
get {return (savedState.Count);}
}
}
Discussion
This recipe makes use of two caretaker objects. The first, MementoCareTaker<T>,
saves a single object state that can later be used to roll an object back. The sec-
ond,
MultiMementoCareTaker<T>, uses a List<T> object to save multiple object
states, thereby allowing many levels of rollbacks to occur. You can also think of
MultiMementoCareTaker<T> as storing multiple levels of the undo/redo state.
The originator class,
SomeDataOriginator, has the state, id, and clsName fields to
store information. One thing you have to add to the class, which will not affect how
it behaves or how it is used, is a nested
Memento class. This nested class is used to
store the state of its outer class. You use a nested class so that it can access the pri-
vate fields of the outer class. This allows the
Memento object to get copies of all the
needed fields of the originator object without having to add special logic to the origi-
nator allowing it to give this field information to the
Memento object.
The
Memento class contains only private fields that mirror the fields in the outer object
that you want to store. Note that you do not have to store all fields of an outer type,
just the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata