问题
您希望通过将所有Stack和Queue对象替换为相应的泛型版本以提高应用程序的效率,并使得代码更易于使用。当结构体或其他值类型存储在这些数据结构中时,会导致装箱/拆箱操作,这时就需要这么做。
解决方案
使用System.Collections.Generic.Stack和System.Collections.Generic.Queue对象来替换现有的System.Collections.Stack和System.Collections.Queue对象。
这里有一个简单地使用System.Collections.Queue对象的简单例子:
publicstaticvoidUseNonGenericQueue()
{
//创建一个非泛型队列对象
QueuenumericQueue=newQueue();
//进队(导致装箱操作).
numericQueue.Enqueue(1);
numericQueue.Enqueue(2);
numericQueue.Enqueue(3);
//出队并显示项(导致拆箱操作)
Console.WriteLine(numericQueue.Dequeue());
Console.WriteLine(numericQueue.Dequeue());
Console.WriteLine(numericQueue.Dequeue().ToString());
}