【发布时间】:2017-11-03 22:40:21
【问题描述】:
我正在尝试将字符串的第一个字符增加到字母表中的下一个字母。
我找到了这个:
string str_A1 = "A1";
string str_B;
str_B= str[0]++;
这里str_B 应该是“B”,但我收到一条错误消息:
无法将属性或索引器“string.this[int]”分配给——它是只读的
【问题讨论】:
-
这个问题有一些新的变化。什么是 str[]?它看起来像一个数组,但你不解释内容是什么。而且你不应该这样做 str[0]++。如果需要,增加索引或从 str[0] 检索的值
-
代码甚至无法编译,从什么时候开始可以增加一个字母?您至少需要对“A”之后的内容进行某种参考。
-
ToCharArray(),[0]++,new string(...). -
问题已得到解答,但这就是您的代码无法编译的原因:
String是不可变的。这意味着您不能修改字符串。对字符串的所有操作仅返回字符串的副本(替换、删除、子字符串等)。因此,索引器 ([]op) 只定义了一个get。++运算符返回关联变量的值,然后递增该值并影响该变量的新值。由于++会影响关联变量的增量值,因此它会尝试调用索引器上的集合。但正如我所说,没有这样的set。