C# 为什么Replace()字符串方法不修改我的字符串变量?

C# 为什么Replace()字符串方法不修改我的字符串变量?,c#,string,C#,String,emailBody是一个非空字符串变量,包含我要发送的电子邮件的正文,包括短语“[确认链接]”。我想用confirmLink变量(一些URL)的内容替换这个短语 当我发送电子邮件时,我仍然会在邮件正文中看到短语“[确认链接]”。为什么?字符串是不可变的。字符串操作通常返回新的字符串实例。 试试这个: emailBody.Replace("[CONFIRMATION_LINK]", confirmLink); // now that the emailBody variabl

emailBody
是一个非空字符串变量,包含我要发送的电子邮件的正文,包括短语“[确认链接]”。我想用
confirmLink
变量(一些URL)的内容替换这个短语


当我发送电子邮件时,我仍然会在邮件正文中看到短语“[确认链接]”。为什么?

字符串是不可变的。字符串操作通常返回新的字符串实例。 试试这个:

emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);

// now that the emailBody variable is set, send the email
emailer.sendEmail(emailAddress, Master.noReplyEmail, emailSubj, emailBody);

字符串是不可变的。字符串操作通常返回新的字符串实例。 试试这个:

emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);

// now that the emailBody variable is set, send the email
emailer.sendEmail(emailAddress, Master.noReplyEmail, emailSubj, emailBody);
该方法返回一个新的、更新的字符串。您需要将
Replace
回调的结果分配给
emailBody

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);
该方法返回一个新的、更新的字符串。您需要将
Replace
回调的结果分配给
emailBody

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);
C#中的字符串是不可变的,这意味着它们一旦实例化就不能更改,除非显式指向另一个字符串。发生的情况是,调用“Replace”时没有任何变量来接收返回的字符串

使用此代码将第2行更改为最后一行:

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);
C#中的字符串是不可变的,这意味着它们一旦实例化就不能更改,除非显式指向另一个字符串。发生的情况是,调用“Replace”时没有任何变量来接收返回的字符串

使用此代码将第2行更改为最后一行:

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);

这是因为Replace不编辑
emailBody
变量。它返回结果字符串。在这种情况下,您需要:

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);

这是因为Replace不编辑
emailBody
变量。它返回结果字符串。在这种情况下,您需要:

emailBody = emailBody.Replace("[CONFIRMATION_LINK]", confirmLink);