2017-01-20 5 views
0

L'expression suivante C# se traduit par une erreur de compilation dans mon programme:chaîne Interpolation intérieur Chaîne d'interpolation en C# résultats en erreur du compilateur

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

devrait-il pas possible d'utiliser chaîne d'interpolation comme ça? Ou est-ce simplement impossible de le faire?

+1

L'utilisation de l'opérateur ternaire dans l'interpolation de chaîne est un peu difficile: Je pense que vous devez ajouter des accolades rondes. –

+0

Merci, ça a marché comme ça! –

Répondre

3

Comme par le documentation, vous devez utiliser le format suivant lorsque vous utilisez l'opérateur ternaire dans l'interpolation de chaîne.

La structure d'une chaîne interpolée est la suivante:

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

Par conséquent, vous devez ajouter un ensemble de parenthèses après {et avant la fermeture} comme ceci:

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

Je viens de le tester. Comme je commentais, vous avez besoin d'accolades pour un opérateur tenery:

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