C# 当您有一个带有字符串参数的函数时,是否会创建该字符串的另一个实例?

C# 当您有一个带有字符串参数的函数时,是否会创建该字符串的另一个实例?,c#,C#,当您有一个带有字符串参数的函数时,调用该函数时是否会创建该字符串的另一个实例?否,它是对同一个不可变实例的引用。这意味着,如果在方法中为其分配一个新值,您所做的只是更改本地引用以指向另一个同样不可变的字符串。字符串是引用类型,尽管是不可变的引用类型 默认情况下,参数通过值传递,对于引用类型变量,值就是引用。但是,由于String类是不可变的,因此对传递给方法的字符串的任何更改都将更改本地引用,以指向新的不可变字符串实例,正如Steven所述 您可能会发现有启发性的好链接。令人惊讶的是乔恩没有亲自

当您有一个带有字符串参数的函数时,调用该函数时是否会创建该字符串的另一个实例?

否,它是对同一个不可变实例的引用。这意味着,如果在方法中为其分配一个新值,您所做的只是更改本地引用以指向另一个同样不可变的字符串。

字符串是引用类型,尽管是不可变的引用类型

默认情况下,参数通过值传递,对于引用类型变量,值就是引用。但是,由于String类是不可变的,因此对传递给方法的字符串的任何更改都将更改本地引用,以指向新的不可变字符串实例,正如Steven所述


您可能会发现有启发性的

好链接。令人惊讶的是乔恩没有亲自来分享。