【问题标题】:Updating array element by reassigning it to different variable?通过将数组元素重新分配给不同的变量来更新数组元素?
【发布时间】:2022-11-27 04:48:50
【问题描述】:

首先,如果之前有人问过这个问题,我很抱歉,但我根本找不到与之相关的任何内容。

string anElement = "World";
string[] col = new string[2] { "Hello", anElement };
anElement = "Jupiter";
Array.ForEach(col, Console.WriteLine);

// Output:
// Hello
// World

可以看出,将不同的值重新分配给 anElement 引用不会更新该值。

同样也适用于这种情况:

string[] col = new string[2] { "Hello", "World" };
string elementToUpdate = col[1];
elementToUpdate = "Jupiter";
Array.ForEach(col, Console.WriteLine);

如果所有元素都存储为引用,为什么更改 col[1]="Jupiter" 有效而上面的无效?

【问题讨论】:

    标签: c# arrays .net reference


    【解决方案1】:

    string 是引用类型,但它是不可更改的——一旦你改变它,它就会创造一个新的价值,旧的价值不会改变,因为 string 旨在模仿值类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多