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 に答える