• 大小: 5KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: C#
  • 标签: command  撤销  重做  

资源简介

这是一个采用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

评论

共有 条评论