C# 字符串插入赢得';不起作用

C# 字符串插入赢得';不起作用,c#,string,C#,String,在字符串中插入字符串似乎没有任何效果。我正在使用以下代码: string stNum = string.Format("{0:00}", iValue); DesiredCode.Insert(0, stNum); txtCode.Text = DesiredCode; 断点显示stNum具有所需的值,并且DesiredCode也与我们在插入之前预期的一样。 但是在插入之后,什么也不会发生,所需的代码与之前相同 有人能告诉我我做错了什么吗?字符串是不可变的。所有方法,如Replace和Inse

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

string stNum = string.Format("{0:00}", iValue);
DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;
断点显示
stNum
具有所需的值,并且DesiredCode也与我们在插入之前预期的一样。 但是在插入之后,什么也不会发生,所需的代码与之前相同

有人能告诉我我做错了什么吗?

字符串是不可变的。所有方法,如
Replace
Insert
都会返回一个新字符串,该字符串是操作的结果,而不是更改现有字符串中的数据。所以你可能想要:

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;
弦是

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

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

声明Replace、Insert等方法都是函数有助于澄清吗?谢谢Jon,SO直到几分钟后才允许我接受。谢谢大家,这是一个愚蠢的错误,我认为它类似于一些静态扩展,但我应该将它返回到自身。我给回答的人放了一些+1,得到了一些-1s:D,不管怎么说,所有的答案似乎都是正确的,而且都是一样的,我立刻得到了答案,乔恩解释得更清楚了。这可能是因为你写问题的方式;在我理解你想说的话之前,我不得不读了两遍一些部分。我同意你的观点,我对得到一个我认为奇怪的结果感到震惊,而且我认为我的文章中有一些语法错误。谢谢你改革它。
string stNum = string.Format("{0:00}", iValue);
DesiredCode = DesiredCode.Insert(0, stNum);
txtCode.Text = DesiredCode;