duheng
2025-03-28 b266e82b9a377fa35a766f7a3a2f5aa95f3c9125
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace HydroUI
{
 
    public class UndoRedoCommand<T>
    {
        private readonly Action<T> _undoAction;
        private readonly Action<T> _redoAction;
        private readonly T _oldValue;
        private readonly T _newValue;
 
        public UndoRedoCommand(T oldValue, T newValue, Action<T> undoAction, Action<T> redoAction)
        {
            _oldValue = oldValue;
            _newValue = newValue;
            _undoAction = undoAction;
            _redoAction = redoAction;
        }
 
        public void Undo()
        {
            _undoAction?.Invoke(_oldValue);
        }
 
        public void Redo()
        {
            _redoAction?.Invoke(_newValue);
        }
    }
}