Double quotes in c# doesn't allow multiline
例如
1 | string str ="{"aps":{"alert":"" + title +"" + message +""}}"; |
我需要在可读性方面:
1 2 3 4 5 6 7 | string str =" { "aps": { "alert":"" + title +"" + message +"" } }"; |
如何做到这一点,请提出建议。
如果您真的需要在字符串文字中这样做,我将使用逐字字符串文字(
1 2 3 4 5 6 7 8 9 10 | string title ="This is the title:"; string message ="(Message)"; string str = $@" {{ ""aps"": {{ ""alert"":""{title}{message}"" }} }}"; Console.WriteLine(str); |
输出:
1 2 3 4 5 6 | { "aps": { "alert":"This is the title: (Message)" } } |
但是,这仍然比使用JSONAPI简单地构建JSON要脆弱得多——例如,如果标题或消息包含引号,那么最终会得到无效的JSON。我只使用json.net,例如:
1 2 3 4 5 6 7 8 9 10 |
在我看来,这不仅更干净,而且更健壮。
您可以使用x-tech所说的,在每行上使用附加的连接操作符("+"),或者使用符号"@":
1 2 3 4 5 6 7 | string str = @" { 'aps': { 'alert':'" + title +"" + message + @"' } }"; |
因为它是一个JSON,所以可以使用单引号而不是双引号。
关于"@":C中的多行字符串文字#