无法分配给--它是只读的-C# 公共结构Osoba{ 公共字符串纳兹维斯科; [...] } 对于(int k=0;k
您好,我一直在尝试替换字符串的最后3个字母,但出现以下错误: 属性或索引器“string.this[int]”无法分配给--它是 只读\ 我试着用谷歌搜索它,解决方案主要是添加getter和setter(我还没有了解它),但对我没有帮助。为什么即使我将所有内容都设置为公共,也不能修改字符串?无法分配给--它是只读的-C# 公共结构Osoba{ 公共字符串纳兹维斯科; [...] } 对于(int k=0;k,c#,C#,您好,我一直在尝试替换字符串的最后3个字母,但出现以下错误: 属性或索引器“string.this[int]”无法分配给--它是 只读\ 我试着用谷歌搜索它,解决方案主要是添加getter和setter(我还没有了解它),但对我没有帮助。为什么即使我将所有内容都设置为公共,也不能修改字符串?字符串是不可变的。创建字符串后不能更改它。您需要创建一个新字符串并重新分配它: public struct Osoba{ public string nazwisko; [...] } fo
字符串是不可变的。创建字符串后不能更改它。您需要创建一个新字符串并重新分配它:
public struct Osoba{
public string nazwisko;
[...]
}
for (int k = 0; k < l; k++)
{
dlugosc = osoba[k].nazwisko.Length;
[...]
if (c[0] == 's' && c[1] == 'k' && c[2] == 'i')
{
osoba[k].nazwisko[dlugosc - 3] = '*';
osoba[k].nazwisko[dlugosc - 2] = '*';
osoba[k].nazwisko[dlugosc - 1] = '*';
}
}
字符串在.NET中是不可变的。不清楚您想要实现什么,但是如果您想直接操作内容,可以使用char数组:
osoba[k].nazwisko = osoba[k].nazwisko.Substring(0, dlugosc - 3) + "***";
public struct Osoba
{
public char[] nazwisko;
[...]
}