4

从一些旧的 VB 代码中复制 C# 中的函数以对电子邮件文本执行字符串操作。我不确定这是否适用于所有情况...有人可以确认我对要使用的正确 C# 代码的想法吗?这些是等价的吗?

原版VB:

function FixText(Mail_Text)
   dim Clean_Text
   Clean_Text = Mail_Text
   Clean_Text = Replace(Clean_Text, "=" & vbcrlf, "")
   Clean_Text = Replace(Clean_Text, ";" & vblrcf, "")
   ` ... other stuff
   FixText = Clean_Text
End Function

新的 C#:

public String FixText(Mail_Text)
{
   String Clean_Text = Mail_Text;
   Clean_Text = Clean_Text.Replace("=" + System.Environment.NewLine, "");
   Clean_Text = Clean_Text.Replace(";" + System.Environment.NewLine, "");
   // ... other stuff
   return Clean_Text;
}
4

2 回答 2

6

从技术上讲,它们不是。 在 C# 中vbcrlf是一个字符串常量。"\r\n"

System.Environment.NewLine"\r\n"是在 Windows 系统上返回的属性,但"\n"在基于 Unix 的系统(Linux 和 OS X)上返回,更一般地表示“当前平台的行终止符”。 无论代码在什么平台上运行,vbcrlf都将始终是 Windows CR+LF 行终止符。

您最终应该使用哪一个取决于如何使用该文本,而这不能从您问题中的其他信息中充分推断出来。

于 2013-08-19T15:52:37.540 回答
0

您使用 C#转义序列

Clean_Text = Clean_Text.Replace("=\r\n", "");
Clean_Text = Clean_Text.Replace(";\r\n", "");
  • \r是回车的转义序列,
  • \n是换行的转义序列。
于 2013-08-19T15:53:04.667 回答