web-dev-qa-db-ja.com

文字列補間でダッシュをフォーマットする

C#6.0の新しい文字列補間機能をチェックしています(詳細については、 Roslynの言語機能ページ を参照してください)。現在の構文(変更される予定です)を使用すると、次のようなことができます(私が今書いているブログ投稿からの例):

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyyMdd}";

ただし、次のように、書式設定部分にダッシュを含めることができないようです。

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyy-M-dd}";

これを行うと、エラーが発生します。

エラーCS1056予期しない文字 '-' StringInterpolation Program.cs 21

書式設定部分でダッシュを機能させる方法はありますか? string.Format()を使用できることはわかっていますが、演習と同じように、文字列補間を使用して実行できるかどうかを確認したいと思います。

編集:私が何について話しているのか誰にもわからないようですので、件名については 私のブログ投稿 を参照してください。それは動作するはずです。

23
Gigi

VS 2015プレビューにあるバージョンの文字列補間では、ダッシュのような文字を別の引用符のペアで囲むことにより、補間形式で使用できます。

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth : "yyyy-M-dd"}";
7
svick

最終バージョンはよりユーザーフレンドリーです:

var text = $"The time is {DateTime.Now:yyyy-MM-dd HH:mm:ss}";
49
Mike Trusov