资源简介
这是一个采用command模式的撤销重做类,采用了list集合来存储命令,这样能限定容器的命令数量。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FYClassForCalculateDraft
{
public class CommandManager
{
#region Command定义
public class Command
{
string name;
public Action action; //恢复委托
public Action unDoAction; //撤销委托
internal Command(string name Action action Action unDoAction) //命令接口
{
this.name = name;
this.action = action;
this.unDoAction = unDoAction;
}
internal void Do() { action(); } //恢复接口
internal void UnDo() { unDoAction(); } //撤销接口
public override string ToString() //重写ToString()方法
{
return name.ToString();
}
}
#endregion
///
/// 重做命令集合
///
public List ReDoActionList { get; private set; }
///
/// 撤销命令集合
///
public List UnDoActionList { get; private set; }
///
/// 最大的命令个数,为可空数据对象,如果不赋值,则最大命令个数没有限制
///
int? maxCount; //最大的存储数量
///
/// 最大的命令个数,为可空数据对象,如果不赋值,则最大命令个数没有限制,最小限制个数为5个
///
public int? MaxCount //最大的存储数量如果输入的数字<5最大数量=5,否则就是按最大数量
{
get { return maxCount; }
set {
if (value < 5)
maxCount = 5;
else
maxCount = value; }
}
///
/// 根据最大命令个数构造
///
/// 最大的命令个数
public CommandManager(int? count) //创建构造方法
{
ReDoActionList = new List();
UnDoActionList = new List();
this.MaxCount = count;
}
///
/// 直接构造类,没有命令限制
///
public CommandManager() //创建构造方法
{
ReDoActionList = new List();
UnDoAc
- 上一篇:窗口截图(可后台截取DX窗口).rar
- 下一篇:C#与OPC 通讯
评论
共有 条评论