gpt4 book ai didi

c# - 为什么字符串的索引器是只读的?

转载 作者:行者123 更新时间:2023-11-30 19:28:38 26 4
gpt4 key购买 nike

当我尝试使用 s[i] = c 分配给字符串中的单个字符时,出现编译器错误:

string s = "bcc";
s[0] = 'a'; // shows compile time error - indexer cannot be assigned - it's readonly

然而这是可行的:

s.ToCharArray()[0] = 'a';

我们也可以将字符串完全赋值给acc:

s = "acc"

最佳答案

这个:

s="acc"

... 正在更改变量 的值以引用不同的字符串。如果允许:

s[0] = 'a';

那不会改变变量的值 - 它必须改变 s 引用的字符串的内容。字符串在 .NET 中是不可变的,因此这是不允许的。

区分更改变量的值和更改它引用的对象内的数据很重要。

更改 s.ToCharArray() 的内容不会对 s 字符串做任何事情 - 它只会改变新的- 创建的数组是字符串中数据的副本

关于c# - 为什么字符串的索引器是只读的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14828222/

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