有没有一种简单的方法在 C#中创建多行字符串文字?
这就是我现在拥有的:
string query = "SELECT foo, bar"
+ " FROM table"
+ " WHERE id = 42";
我知道 PHP 有
<<<BLOCK
BLOCK;
C#有类似的东西吗?
它在 C#中被称为逐字字符串文字 ,它只是在文字之前放置 @的问题。这不仅允许多行,而且还会关闭转义。例如,您可以这样做:
string query = @"SELECT foo, bar
FROM table
WHERE name = 'a\b'";
逃脱的唯一一点是,如果你想要一个双引号,你必须添加一个额外的双引号符号:
string quote = @"Jon said, ""This will work,"" - and it did!";
另一个需要注意的是在 string.Format 中使用字符串文字。在这种情况下,您需要转义花括号 / 括号 '{' 和 '}'。
// this would give a format exception
string.Format(@"<script> function test(x)
{ return x * {0} } </script>", aMagicValue)
// this contrived example would work
string.Format(@"<script> function test(x)
{{ return x * {0} }} </script>", aMagicValue)