此方法用於創建堆棧的淺拷貝。它隻是創建堆棧的副本。該副本將引用內部數據陣列的克隆,但不引用原始內部數據陣列。
用法: public virtual object Clone ();
返回值:該方法返回一個Object,它隻是Stack的淺拷貝。
範例1:讓我們看一個示例,該示例不使用Clone()方法,而是使用賦值運算符“ =”直接複製堆棧。在下麵的代碼中,即使我們來自myStack2的Pop()元素,我們也可以看到,myStack的內容也已更改。這是因為“ =”隻是將myStack的引用分配給myStack2,而不會創建任何新的Stack。但是Clone()創建了一個新的堆棧。
// C# program to Copy a Stack using
// the assignment operator
using System;
using System.Collections;
class GFG {
// Main Method
public static void Main(string[] args)
{
Stack myStack = new Stack();
myStack.Push("C");
myStack.Push("C++");
myStack.Push("Java");
myStack.Push("C#");
// Creating a copy using the
// assignment operator.
Stack myStack2 = myStack;
// Removing top most element
myStack2.Pop();
PrintValues(myStack);
}
public static void PrintValues(IEnumerable myCollection)
{
// This method prints all
// the elements in the Stack.
foreach(Object obj in myCollection)
Console.WriteLine(obj);
}
}
輸出:
Java C++ C
範例2:
// C# program to illustrate the use
// of Stack.Clone() Method
using System;
using System.Collections;
class MainClass {
// Main Method
public static void Main(string[] args)
{
Stack myStack = new Stack();
myStack.Push("1st Element");
myStack.Push("2nd Element");
myStack.Push("3rd Element");
myStack.Push("4th Element");
// Creating copy using Clone() method
Stack myStack3 = (Stack)myStack.Clone();
// Removing top most element
myStack3.Pop();
PrintValues(myStack);
}
public static void PrintValues(IEnumerable myCollection)
{
// This method prints all the
// elements in the Stack.
foreach(Object obj in myCollection)
Console.WriteLine(obj);
}
}
輸出:
4th Element 3rd Element 2nd Element 1st Element
參考:
相關用法
- C# SortedDictionary.Add()用法及代碼示例
- JQuery before()用法及代碼示例
- JQuery off()用法及代碼示例
- C# Math.Log()用法及代碼示例
- C# Math.Pow()用法及代碼示例
- C# Stack.Contains()用法及代碼示例
- HTML DOM contains()用法及代碼示例
- JQuery is()用法及代碼示例
- C# Queue.Contains()用法及代碼示例
注:本文由純淨天空篩選整理自mayukh Sengupta大神的英文原創作品 Stack.Clone() Method in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。