C# 声明一个跨越多行的字符串

14
我试图创建一个类似于这样的字符串
string myStr = "CREATE TABLE myTable
(
id text,
name text
)";

但是我收到了一个错误: http://i.stack.imgur.com/o6MJK.png

这里发生了什么?

3个回答

28

在字符串前加上at符号 (@)可以创建一个原样字符串。普通字符串不能跨越多行。

string myStr = @"CREATE TABLE myTable
(
    id text,
    name text
)";

请注意,在一个用@引入的verbatim字符串内,反斜杠(\)不再被解释为转义字符。这在正则表达式和文件路径中非常实用。

string verbatimString = @"C:\Data\MyFile.txt";
string standardString = "C:\\Data\\MyFile.txt";

现在必须将双引号加倍以进行转义

string verbatimString  = @"This is a double quote ("")";
string standardString  = "This is a double quote (\")";

从C# 11开始,我们可以使用原始字符串字面量。它们允许您保留代码的缩进,同时不将缩进空格添加到字符串本身的内容中。在下面的示例中,CREATE在字符串的第一行左对齐。结束标记"""的位置标志着字符串的左边缘。字符串的结尾是),后面没有换行符。双引号无需转义。

    string myStr = """
        CREATE TABLE "myTable"
        (
            "id" text,
            "name" text
        )
        """;

8
string myStr = @"CREATE TABLE myTable
(
id text,
name text
)";

3

在字符串前面使用 @ 符号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接