c# - 关于C#中引用字符串的问题

标签 c# object reference arraylist

快速提问。

采用以下代码示例:

ArrayList arrayList = new ArrayList();
string testString = "";
testString = "test";
arrayList.Add(testString);

在该代码示例中,如果我要执行以下操作:

arrayList[0] = "anotherTest";

testString 会更改为 anotherText 还是保持不变?是放入的对象还是它的副本、另一个字符串?

谢谢, 克里斯蒂安

最佳答案

之前:

          Before

之后:

          After

  • 仅将 a​​rrayList[0] 的值更改为对“anotherTest”的引用。 testString 变量的值保持不变。

  • 字符串是引用类型。这意味着 testString 变量和 arrayList[0] 各自(独立)保存对对象“test”和“anotherTest”的引用,而不是值本身。

  • 将 testString 或 arrayList[0] 从一个字符串更改为另一字符串不会修改原始字符串。字符串是不可变的。仅更改对字符串对象的引用。

关于c# - 关于C#中引用字符串的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6555529/

相关文章:

C# 主项目和子项目引用

c# - 在没有 ASP.NET Core 的情况下使用 Kestrel

c# - 在 C# 中的某个特定字符后获取值

generics - 编译器如何推断Box正在借用其内容借来的那个?

c++ - 将不同的对象传递给一个函数

regex - 如何在正则表达式中包含对象

c# - OOP - 从子函数更新整个对象,如 C 中的指针

c# - 从 cshtml 页面重定向

c# - 如何禁用 "Are you sure you want to leave this page"警报?

cocoa - 来自枚举值的 NSString