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] = '*';
}
}
你好,我一直试图替换3个字符串的最后一个字母,但是我得到了这个错误:
属性或索引器'string.this [int]'无法分配给它 - 它是 只读\
我试图谷歌它,解决方案主要是添加getter和setter(我还没有了解它),但它没有帮助我。为什么我不能修改我的字符串,即使我认为所有内容都是公开的?
答案 0 :(得分:5)
Strings
immutable 。您在创建字符串后无法更改字符串。您需要创建一个新字符串并将其分配回来:
osoba[k].nazwisko = osoba[k].nazwisko.Substring(0, dlugosc - 3) + "***";
答案 1 :(得分:2)
字符串在.NET中是不可变的。目前还不清楚你想要实现什么,但如果你想直接操作内容,你可以使用char数组:
public struct Osoba
{
public char[] nazwisko;
[...]
}