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!

csharp_strings.html