c# 6.0 - Confuse about String Interpolation in C# 6.0 -
this question has answer here:
i have code inline variable { (hour > 12 ? "pm" : "am") }
i create , works confused because without braces ()
have issue code lots of red underlines there, infect compiler code suggestions refactor red underlines after wrap expression ()
works.
i want know status of ()
in interpolation inline variable?
writeline($"{hour}:{minout}:{seconds} { (hour > 12 ? "pm" : "am") }");
:
operator valid operator string formatting used in string interpolation
var date = new datetime(2017, 8, 31); var stringdate = $"date {date:yyyy.mm.dd}"; // "date 2017.08.31"
without parenthesis :
considered format string, not conditional operator, using conditional operator should wrap conditional expression parenthesis.
var stringdate = $"it {(date.hours > 12 ? "evening" : "morning")}";
another approach (perhaps more readable) execute expressions before formatting result
var daypart = date.hours > 12 ? "evening" : "morning"; var stringdate = $"it {daypart}";
Comments
Post a Comment