⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operationrecorder.cs

📁 案例1如何应用HTTP协议下载文件
💻 CS
字号:
using System;
using System.Collections;
namespace Utilities
{
	/// <summary>
	/// 完成对树节点操作的前进与后退功能:类似于Windows资源管理器与IE。
	/// </summary>
	public class OperationRecorder
	{
		//内部数据存入集合中
		private ArrayList BackOpts = new ArrayList();
		private ArrayList ForwardOpts = new ArrayList();

		//最多存储50个操作
		private const int MaxOpt = 50;

		public void AddOpt(object opt)
		{
			if(opt == null)
				return;

			//不允许连续两次加入同样的节点
			if(BackOpts.Count > 0 && opt == BackOpts[BackOpts.Count - 1])
				return;

			if(this.BackOpts.Count == MaxOpt)
			{
				//集合中操作已满,则删除最早的一个操作
				this.BackOpts.RemoveAt(0);
			}

			BackOpts.Add(opt);

			//清空前进集合
			this.ForwardOpts.Clear();
		}
		/// <summary>
		/// 后退,如果无操作,则返回null
		/// </summary>
		/// <returns></returns>
		public object Back()
		{
			object opt = null;
			int count = this.BackOpts.Count;

			if(count > 0)//挑出最近一次操作
			{
				opt = this.BackOpts[count - 1];
				this.BackOpts.RemoveAt(count - 1);
				//移入前进的集合中
				this.ForwardOpts.Add(opt);
			}
			return opt;
		}
		/// <summary>
		/// 前进,如果无操作,则返回null
		/// </summary>
		/// <returns></returns>
		public object Forward()
		{
			object opt = null;
			int count = this.ForwardOpts.Count;

			if(count > 0)//挑出最近一次操作
			{
				opt = this.ForwardOpts[count - 1];
				this.ForwardOpts.RemoveAt(count - 1);
				//移入后退的集合中
				this.BackOpts.Add(opt);
			}
			return opt;
		}

		/// <summary>
		/// 初始化
		/// </summary>
		public void Init()
		{
			this.BackOpts.Clear();
			this.ForwardOpts.Clear();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -