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

String Interpolation inside String Interpolation in C# results in compiler error

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

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

不应该这样使用字符串插值吗?还是根本不可能这样做?

我刚刚测试了这个。正如我评论的那样,三元运算符需要大括号:

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

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

The structure of an interpolated string is as follows:

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

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

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