您的位置:首页 > 编程语言 > C#

c# 栈的介绍与应用---编辑器撤销操作~

2018-03-08 11:59 246 查看
说明

栈(Stack)是一个只有一个出口的后进先出的对象集合。

申明方法

public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable
Stack<string> beforeRtf = new Stack<string>();


重要属性

Count  当前栈内元素个数

常用方法

Pop   移除并返回在 Stack 的顶部的对象

push  向 Stack 的顶部添加一个对象

peek  返回在 Stack 的顶部的对象,但不移除它

ToArray  创建数组并将堆栈元素复制到其中

Contains   判断一个元素是否在栈中

Clear  从 Stack 中移除所有的元素。

应用—-编辑器撤销操作

原理与实现:

每次操作都把操作之前的内容压入栈中,撤销的时候就从栈中取出一个恢复

看代码吧~

//申明一个空栈
Stack<string> beforeRtf = new Stack<string>();
//初始状态撤销不可用
btnBack.Enabled = false;
//定义一个删除某一行的操作
public void delLine(int line)
{
//记录操作之前的内容&入栈
beforeRtf.Push(richTextBox1.Text);
//执行操作
List<string>s=richTextBox1.Lines.ToList();
s.RemoveAt(line);
string str=string.Join("\r\n", s);
richTextBox1.Text=str;
//标记撤销可用
btnBack.Enabled = true;
}
public void Revoke()
{
//取得上一步操作的内容&出栈
richTextBox1.Text= beforeRtf.Pop();
//如果栈内没有与元素 标记撤销不可用
if (beforeRtf.Count<=0)
{
btnBack.Enabled = false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: