資源簡介
這是一個采用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 通訊
評論
共有 條評論