字符串插入不会产生任何影响

时间:2013-07-27 17:47:36

标签: c# string

将字符串插入字符串似乎没有任何效果。我正在使用以下代码:

string stNum = string.Format("{0:00}", iValue);
DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;

断点显示stNum具有所需的值,DesiredCode也是我们在插入之前所期望的。 但插入后,什么都不会发生,DesiredCode和以前一样!

有人可以指出我正确的方向,我做错了吗?

3 个答案:

答案 0 :(得分:7)

字符串是不可变的。 所有方法ReplaceInsert返回 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)

C#中的

Strings are immutable。这意味着您需要在操作后将String.Insert的返回值分配给string变量才能访问它。

string stNum = string.Format("{0:00}", iValue);
DesiredCode = DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;