2009-09-09 10 views
17

(たとえば、テキストファイルへの出力のために)使用する必要がある行末識別子は何ですか?VB.NETの行末識別子?

多くの選択肢があります:

  • のvbCrLf
  • vbNewLine(のvbCrLfの明らかにエイリアス)
  • ControlChars.CrLf
  • ControlChars.NewLine
  • Environment.NewLine
  • 静的アプリケーションのいくつかのC#クラスのメンバ(混在言語ソリューションが必要):public static string LINEEND = "\ r \ n"; (プロパティテキストの編集中に使用されているシフト + 戻る Trueにプロパティ複数行セットでのTextBoxのために、少なくともVisual Basic 2005 Express Edition、Visual Studioのデザイナーによって生成された。)
  • Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10)

    ベストプラクティスとは何ですか?

  • 答えて

    24

    私はそれが一般的にいくつかの理由で、新しいライン識別子としてEnvironment.NewLineを使用するのが最も理にかなっていると信じて:

    • それは、環境に依存読み取り専用の変数です。 Linux上でプログラムを実行している場合は、値は単に\nになります。
    • vbCrLfは、VB6およびそれ以前の言語のレガシー定数です。また、環境に依存しません。
    • \r\nは環境に依存しないという同じ問題を抱えており、VB.NETでもうまく実行できません(Chr(13) & Chr(10)に変数を割り当てる必要があります)。
    • コントロールはMicrosoft.VisualBasic名前空間に存在し、vbCrLfのような事実上レガシー/下位互換性のオプションになります。可能であれば、常にレガシーコードから離れてください。
    +0

    'Environment.NewLine'は定数式では動作しません。 'vbNewLine'は行いますが(他のものはチェックしていません) –

    6

    Environment.NewLineは、単に環境に依存し、異なるプラットフォームで異なる動作をするためです。

    2

    あなたのプログラミングスタイルに応じて、選択することがあります。

    • ControlCharsクラスを、あなたは常に整数としてかのInt32としてVBとあなたのコードを使用するVB規格(あなたは、変数を宣言しない方法の他の部分を使用している場合は?整数はVB、Int32はすべての.NET言語で共通です)。とにかく、あなたが既にVBと結婚している場合。一般的な、言語や環境independendの道のためにそうしないと...
    • 環境(私の提案)

    私は最悪の(ようにまたはCInt関数()と)のvbCrLfなどのretrocompatibility関数の使用、だと思う