C# 字符串 - Clone() 方法
C# 字符串 Clone() 方法用于浅拷贝字符串对象。需要注意的是,clone 方法不会创建新的字符串,它只是创建相同数据的另一个视图。
浅拷贝是指创建一个与现有对象共享相同实例变量的新对象。
语法
以下是 C# 字符串 Clone() 方法的语法 -
public object Clone();
参数
此方法不接受任何参数 -
返回值
此方法返回字符串实例。
示例 1
这是字符串 Clone() 方法的基本示例。我们可以使用此方法创建相同数据的另一个视图。
using System; class Program { static void Main() { string original_string = "Hello, TutorialsPoint !"; object cloned_string = original_string.Clone(); Console.WriteLine($"Original: {original_string}"); Console.WriteLine($"Cloned: {cloned_string}"); Console.WriteLine($"Are both references equal? {ReferenceEquals(original_string, cloned_string)}"); } }
输出
以下是输出 -
Original: Hello, TutorialsPoint ! Cloned: Hello, TutorialsPoint ! Are both references equal? True
示例 2:修改字符串
让我们看另一个 Clone() 方法的示例。这里,我们在克隆后修改了原始字符串 -
using System; class Program { static void Main() { string original_str = "Learning C# in tutorialspoint is fun"; object cloned_str = original_str.Clone(); Console.WriteLine("Original String: " + original_str); Console.WriteLine("Cloned String: " + cloned_str); // 修改原字符串 original_str = "I love tutorialspoint"; Console.WriteLine("After modifying the original string:"); Console.WriteLine("Original String: " + original_str); Console.WriteLine("Cloned String: " + cloned_str); } }
输出
以下是输出 -
Original String: Learning C# in tutorialspoint is fun Cloned String: Learning C# in tutorialspoint is fun After modifying the original string: Original String: I love tutorialspoint Cloned String: Learning C# in tutorialspoint is fun
示例 3:修改克隆的字符串
在此示例中,我们修改了克隆的字符串 -
using System; class Program { static void Main() { string original = "Hii, TutorialsPoint!"; object cloned = original.Clone(); Console.WriteLine("Original String: " + original); Console.WriteLine("Cloned String: " + cloned); string modified_cloned = ((string)cloned).ToUpper(); Console.WriteLine("Are the references equal? " + ReferenceEquals(original, cloned)); Console.WriteLine("After modifying the cloned string:"); Console.WriteLine("Modified Cloned" + modified_cloned); } }
输出
以下是输出 -
Original String: Hii, TutorialsPoint! Cloned String: Hii, TutorialsPoint! Are the references equal? True After modifying the cloned string: Modified ClonedHII, TUTORIALSPOINT!