Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
複数改行がある確認ダイアログを用意しようとしていた。
string msg = "";
//パターン1
msg += "Is it OK?" + System.Environment.NewLine;
msg += "Away team" + System.Environment.NewLine;
msg += "1. Janeway" + System.Environment.NewLine;
msg += "2. Tuvok" + System.Environment.NewLine;
msg += "3. Chakotay";
IntelliSenseにより入力は楽だが、将来ソースを見た時に「この長ったらしいのは何だ」と思いそう。
以下のようにした。
private void uxConfirm_Click(object sender, RoutedEventArgs e)
{
string msg = "";
//パターン1
//msg += "Is it OK?" + System.Environment.NewLine;
//msg += "Away team" + System.Environment.NewLine;
//msg += "1. Janeway" + System.Environment.NewLine;
//msg += "2. Tuvok" + System.Environment.NewLine;
//msg += "3. Chakotay";
// パターン2
msg = string.Format("{1}{0}{2}{0}{3}{0}{4}{0}{5}",
System.Environment.NewLine,
"Is it OK?", // 1
"Away team",
"1. Janeway",
"2. Tuvok",
"3. Chakotay"
);
MessageBoxResult res = MessageBox.Show(msg, "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question);
}
途中に改行を二回入れる場合など簡単に変更できる。
System.Environment.NewLine
https://msdn.microsoft.com/ja-jp/library/system.environment.newline(v=vs.110).aspx
System.Environment.NewLine
でなく\r\n
で済ますと将来困ることがあるかどうか。
https://stackoverflow.com/questions/1015766/difference-between-n-and-environment-newline
answered Apr 5 '14 at 8:34
aloisdg
によると.NET 4.6.1からはPLATFORM_UNIXの"\n"を返す処理がなくなっている?
http://referencesource.microsoft.com/#mscorlib/system/environment.cs,63a04833d43dd9d3
System.Environment.NewLineを使う意味は.NET 4.6.1以降はなさそう。