gpt4 book ai didi

C# 如何使用 String 获取引用类型行为?

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:19 25 4
gpt4 key购买 nike

这个问题是我经常用来解释值类型和引用类型之间区别的常用代码示例:

class Rectangle
{
public double Length { get; set; }
}

struct Point
{
public double X, Y;
}

Point p1 = new Point();
p1.X = 10;
p1.Y = 20;
Point p2 = p1;
p2.X = 100;
Console.WriteLine("p1.X = {0}", p1.X);

Rectangle rect1 = new Rectangle
{ Length = 10.0, Width = 20.0 };
Rectangle rect2 = rect1;
rect2.Length = 100.0;
Console.WriteLine("rect1.Length = {0}",rect1.Length);

在这种情况下,第二个 Console.WriteLine 语句将输出:“rect1.Length = 100”

在这种情况下类是引用类型,结构是值类型。如何使用字符串演示相同的引用类型行为?

提前致谢。

最佳答案

你不能。字符串是不可变的.. 这意味着您不能直接更改它们。对字符串的任何更改实际上都是返回一个新字符串。

因此,这(我假设你的意思):

string one = "Hello";
string two = one;

two = "World";

Console.WriteLine(one);

.. 将打印“Hello”,因为 two 现在是一个全新的字符串,而 one 保持原样。

关于C# 如何使用 String 获取引用类型行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com