Object.MemberwiseClone Method in C# with Examples Last Updated : 23 Mar, 2022 Summarize Comments Improve Suggest changes Share Like Article Like Report Object.MemberwiseClone Method is used to create a shallow copy or make clone of the current Object. Shallow copy is a bit-wise copy of an object. In this case, a new object is created and that object has an exact copy of the existing object. Basically, this method copies the non-static fields of the current object to the new object. If a field is a reference type, then the only reference is copied not the referred object. So here, the cloned object and the original object will refer to the same object.If the field is value type then the bit-by-bit copy of the field will be performed. Syntax: protected object MemberwiseClone (); Returns: This method returns a Object, which is the shallow copy of existing Object. Example 1: csharp // C# program to clone a object // using MemberwiseClone() method using System; class GFG1 { public int val; public GFG1(int val) { this.val = val; } } class GFG2 { public GFG1 gg; public GFG2(int val) { // copy the reference of GFG1 to gg this.gg = new GFG1(val); } // method for cloning public GFG2 Clone() { // return cloned value using // MemberwiseClone() method return ((GFG2)MemberwiseClone()); } } // Driver Code class Geek { // Main Method public static void Main() { // object of Class GFG2 with a value 3 GFG2 g = new GFG2(3); // calling Clone() // "cc" has the reference of Clone() GFG2 cc = g.Clone(); // accessing the main value Console.WriteLine("Value: " + g.gg.val); // accessing the cloned value Console.WriteLine("cloned value: " + cc.gg.val); // set a new value // in variable "val" cc.gg.val = 6; // accessing the main value Console.WriteLine("\nValue: " + g.gg.val); // accessing the cloned value Console.WriteLine("cloned value: " + cc.gg.val); } } Output:Value: 3 cloned value: 3 Value: 6 cloned value: 6 Example 2: csharp // C# program to demonstrate the // MemberwiseClone() method using System; public class GFG : ICloneable { // data members public string Name; public string Surname; public int Age; // constructor public GFG(string name, string title, int age) { Name = name; Surname = title; Age = age; } // method for cloning public object Clone() { // return cloned value using // MemberwiseClone() method return MemberwiseClone(); } public override string ToString() { return string.Format("Name = {0}, Surname = {1}, Age {2}", Name, Surname, Age); } } // Driver Class public class MainClass { // Main Method public static void Main() { GFG g = new GFG("ABC", "XYZ", 26); // calling Clone() // "cg" has reference of Clone() GFG cg = (GFG)g.Clone(); Console.WriteLine("For Old values\nOriginal :"); Console.WriteLine(g); Console.WriteLine("Cloned :"); Console.WriteLine(cg); Console.WriteLine("\nAfter assigning new values"); g.Name = "LMN"; g.Surname = "QRS"; g.Age = 13; Console.WriteLine("Original :"); Console.WriteLine(g); Console.WriteLine("Cloned :"); // prints the old cloned value Console.WriteLine(cg); } } Output:For Old values Original : Name = ABC, Surname = XYZ, Age 26 Cloned : Name = ABC, Surname = XYZ, Age 26 After assigning new values Original : Name = LMN, Surname = QRS, Age 13 Cloned : Name = ABC, Surname = XYZ, Age 26 Reference: https://docs.microsoft.com/en-us/dotnet/api/system.object.memberwiseclone?view=netframework-4.8 Comment More infoAdvertise with us S SoumikMondal Follow Improve Article Tags : C# CSharp-method CSharp Object Class Similar Reads C# Tutorial C# (pronounced "C-sharp") is a modern, versatile, object-oriented programming language developed by Microsoft in 2000 that runs on the .NET Framework. Whether you're creating Windows applications, diving into Unity game development, or working on enterprise solutions, C# is one of the top choices fo 4 min read Introduction to .NET Framework The .NET Framework is a software development framework developed by Microsoft that provides a runtime environment and a set of libraries and tools for building and running applications on Windows operating systems. The .NET framework is primarily used on Windows, while .NET Core (which evolved into 6 min read C# Interview Questions and Answers C# is the most popular general-purpose programming language and was developed by Microsoft in 2000, renowned for its robustness, flexibility, and extensive application range. It is simple and has an object-oriented programming concept that can be used for creating different types of applications.Her 15+ min read C# Dictionary Dictionary in C# is a generic collection that stores key-value pairs. The working of Dictionary is quite similar to the non-generic hashtable. The advantage of a Dictionary is, that it is a generic type. A dictionary is defined under System.Collections.Generic namespace. It is dynamic in nature mean 5 min read C# List Class In C#, the List<T> class represents the list of objects that can be accessed by index. It comes under the System.Collections.Generic namespace. List class can be used to create a collection of different types like integers, strings, etc. List<T> class also provides the methods to search, 7 min read C# Delegates A delegate is an object which refers to a method or you can say it is a reference type variable that can hold a reference to the methods. It provides a way which tells which method is to be called when an event is triggered. For example, if you click on a Button on a form (Windows Form application), 6 min read ASP.NET Interview Questions and Answer ASP.NET is a popular framework by Microsoft for building fast and scalable web applications. It allows developers to create dynamic websites, services, and apps, using server-side code and offering a user-friendly experience. Trusted by companies like Microsoft, Dell, and Accenture, ASP.NET is used 15+ min read C# .NET Framework (Basic Architecture and Component Stack) C# (C-Sharp) is a modern, object-oriented programming language developed by Microsoft in 2000. It is a part of the .NET ecosystem and is widely used for building desktop, web, mobile, cloud, and enterprise applications. This is originally tied to the .NET Framework, C# has evolved to be the primary 6 min read C# Data Types Data types specify the type of data that a valid C# variable can hold. C# is a strongly typed programming language because in C# each type of data (such as integer, character, float, and so forth) is predefined as part of the programming language and all constants or variables defined for a given pr 7 min read C# Arrays An array is a group of like-typed variables that are referred to by a common name. And each data item is called an element of the array. The data types of the elements may be any valid data type like char, int, float, etc. and the elements are stored in a contiguous location. Length of the array spe 8 min read Like