C# String Clone() Method Last Updated : 13 Mar, 2025 Comments Improve Suggest changes Like Article Like Report In C#, the Clone() method is a String method. It is used to clone the string object, which returns another copy of that data. In other words, it returns a reference to this instance of String. The return value will be only another view of the same data. The Clone() method is called directly on the current String instance. This method will not take any parameters. Some important characteristics of the clone method are,This method is part of the ICloneable interface.Strings are immutable, so we cannot change their values that's why we need to use the Clone() method.The clone() method created a Shallow copy of the object ( They refer to the same memory).Strings are immutable, so the Clone() method creates a new identical string object with the same reference.Example 1: Demonstration of String Clone() method. csharp // C# program to illustrate // Clone() method using System; class Geeks { public static void Main(string[] args) { string s = "GeeksforGeeks"; // Cannot implicitly convert // type object to the string. // So explicit conversion // using Clone() method string clone = (String)s.Clone(); // Displaying both the string Console.WriteLine("Original String : {0}", s); Console.WriteLine("Clone String : {0}", clone); } } OutputOriginal String : GeeksforGeeks Clone String : GeeksforGeeks Syntax of String Clone() Methodpublic object Clone()Return Type: This method returns a reference of an original string of type System.Object.Example 2: Demonstration of how the object created by the Clone() method shares the same reference (shallow copy). C# using System; class Geeks { public static void Main() { string s = "Hello, World!"; string s2 = "Hello, World!"; // using the string clone method string Clone = (string)s.Clone(); Console.WriteLine("Is s and s2 sharing the same memory location: {0}", object.ReferenceEquals(s, s2)); Console.WriteLine("Is s and Clone sharing the same memory location: {0}", object.ReferenceEquals(s, Clone)); } } Explanation: In the above example, we use the Clone() method to clone a string object. And check their memory reference. We know that the strings are immutable in C# so if we create another string with the same value it also shares the same reference but if we modify the Clone object it will not affect the original object because it will create a new string instance in that case.Important Points:The String.Clone() method creates a shallow copy of a string object but due to its Immutaballity. If we make any modification to the clone object does not reflect on the original objectIt behaves like a deep copy but internally it is shallow copy the difference between deep and shallow copy covered in this article. Comment More infoAdvertise with us Next Article C# String Clone() Method M Mithun Kumar Follow Improve Article Tags : C# CSharp-method CSharp-string 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