将字符串插入字符串似乎没有任何效果。我正在使用以下代码:
string stNum = string.Format("{0:00}", iValue);
DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;
断点显示stNum
具有所需的值,DesiredCode也是我们在插入之前所期望的。
但插入后,什么都不会发生,DesiredCode和以前一样!
有人可以指出我正确的方向,我做错了吗?
答案 0 :(得分:7)
字符串是不可变的。 所有方法Replace
和Insert
返回 new 字符串,这是操作的结果,而不是更改现有的字符串。所以你可能想要:
txtCode.Text = DesiredCode.Insert(0, stNum);
或者对于整个广告块,使用直接ToString
格式而不是使用string.Format
:
txtCode.Text = DesiredCode.Insert(0, iValue.ToString("00"));
在我看来,甚至更清楚的是使用字符串连接:
txtCode.Text = iValue.ToString("00") + DesiredCode;
请注意, none 会改变DesiredCode
的值。如果你想这样做,你需要分配给它,例如
DesiredCode = iValue.ToString("00") + DesiredCode;
txtCode.Text = DesiredCode;
答案 1 :(得分:3)
字符串是immutable!
DesiredCode = DesiredCode.Insert(0, stNum);
答案 2 :(得分:2)
Strings are immutable。这意味着您需要在操作后将String.Insert
的返回值分配给string
变量才能访问它。
string stNum = string.Format("{0:00}", iValue);
DesiredCode = DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;