Este método se utiliza para crear una copia superficial de la pila. Simplemente crea una copia de la pila. La copia tendrá una referencia a un clon de la array de datos interna pero no una referencia a la array de datos interna original.
Sintaxis: objeto virtual público Clone();
Valor devuelto: el método devuelve un objeto que es solo la copia superficial de la pila.
Ejemplo 1: Veamos un ejemplo sin usar un método Clone() y copiando directamente una Pila usando el operador de asignación ‘=’. En el siguiente código, podemos ver que incluso si usamos elementos Pop() de myStack2 , el contenido de myStack también cambia. Esto se debe a que ‘=’ solo asigna la referencia de myStack a myStack2 y no crea ninguna pila nueva. Pero Clone() crea una nueva pila.
// 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
Ejemplo 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
Referencia:
Publicación traducida automáticamente
Artículo escrito por mayukh Sengupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA