0

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

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

Breakpoints showstNum有想要的值,而 DesiredCode 也是我们在插入之前所期望的。但是插入之后,什么都不会发生,并且 DesiredCode 和之前一样!

有人可以指出我做错了什么吗?

4

3 回答 3

7

字符串是不可变的。所有方法都喜欢ReplaceInsert返回一个作为操作结果的字符串,而不是更改现有字符串中的数据。所以你可能想要:

txtCode.Text = DesiredCode.Insert(0, stNum);

或者对于整个块,使用直接ToString格式化而不是使用string.Format

txtCode.Text = DesiredCode.Insert(0, iValue.ToString("00"));

在我看来,或者更清楚的是使用字符串连接:

txtCode.Text = iValue.ToString("00") + DesiredCode;

请注意,这些都不会改变DesiredCode. 如果你想这样做,你需要重新分配给它,例如

DesiredCode = iValue.ToString("00") + DesiredCode;
txtCode.Text = DesiredCode;
于 2013-07-27T17:48:51.883 回答
3

字符串是不可变的!

DesiredCode = DesiredCode.Insert(0, stNum);
于 2013-07-27T17:48:56.367 回答
2

字符串在 C# 中是不可变的。这意味着您需要在操作后将返回值分配给String.Insert变量string才能访问它。

string stNum = string.Format("{0:00}", iValue);
DesiredCode = DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;
于 2013-07-27T17:49:14.517 回答