2015-11-02 39 views
16

Tôi cố gắng sử dụng toán tử điều kiện bên trong một chuỗi nội suy, nhưng vì nó có dấu hai chấm, trình biên dịch nghĩ rằng sau dấu hai chấm có một chuỗi định dạng.C# chuỗi nội suy với toán tử điều kiện

$"test {foo ? "foo is true" : "foo is false"}"; 

Tôi làm cách nào để sử dụng loại tuyên bố này? Điều duy nhất mà đến với tâm trí của tôi là một cái gì đó như thế này:

var fooString = foo ? "foo is true" : "foo is false"; 
$"test {fooString}"; 
+2

Đó là [Chuỗi nội suy] (https://msdn.microsoft.com/en-GB/library/dn961160.aspx). [Chuỗi nguyên văn] (https://msdn.microsoft.com/en-GB/library/362314fe.aspx) là các chuỗi bắt đầu bằng '@" 'và có thể chứa các ký tự thường cần phải thoát. –

Trả lời

37

Bạn cần đặt chuỗi trong dấu ngoặc đơn trong một số {}, vì vậy: {(1 == 1 ? "yes" : "no")}.

-1
$"test {(foo ? "foo is true" : "foo is false")}"; 

Các dấu ngoặc nhỏ trả về một biến, và đó là điều duy nhất cho phép bên trong dấu ngoặc lớn cùng với ruột bán và các định dạng.

Các vấn đề liên quan