字符串中的字符串插值C#中的插值导致编译器错误

时间:2017-01-20 11:22:40

标签: c# string-interpolation csc

以下C#表达式导致程序中出现编译错误:

$"Getting image from {location.IsLatitudeLongitude ? $"{location.Latitude} - {location.Longitude}" : location.Location}."

难道不可能像这样使用字符串插值吗?或者是不可能这样做?

2 个答案:

答案 0 :(得分:4)

我刚试过这个。正如我评论的那样,你需要一个tenery操作员的大括号:

$"Getting image from {(location.IsLatitudeLongitude ? $"{location.Latitude} - {location.Longitude}" : location.Location)}."

答案 1 :(得分:4)

根据documentation,在字符串插值中使用三元运算符时,需要使用以下格式。

  

插值字符串的结构如下:

$ "{ <interpolation-expression> <optional-comma-field-width> <optional-colon-format> }"

因此,您需要在{和结束前}之后添加一组括号,如下所示:

$"Getting image from {(location.IsLatitudeLongitude ? $"{location.Latitude} - {location.Longitude}" : location.Location)}."