c# - 逐字转义字符串文字

标签 c# string escaping verbatim-string

我有以下无法编译的字符串:

String formLookupPull = @"SELECT value1, '"+tableName+"', '"+columnName+"' FROM lkpLookups WHERE ""table"" = '" + tableName + "' and ""field"" = '" + columnName + "';";

违规的部分是:

""table"" =

""field"" = 

编译器在转义序列上搞混了。谁能看出哪里出了问题?

最佳答案

解决您的标题问题...

要转义逐字字符串文字中的引号,请使用 quote-escape-sequence ""(即两个引号字符)

string a = @"He said ""Hi!""..."; // He said "Hi!"...

参见 MSDN有关转义等的更多详细信息。

请注意,在您发布的代码中,唯一的逐字字符串是第一个字符串(前面有 @)。后续字符串不是逐字的,因此正确的转义序列是 \"

你可以用 string.Format 让它看起来更漂亮:

String formLookupPull = 
   string.Format(@"SELECT value1, '{0}', '{1}' FROM lkpLookups" +
                 @"WHERE ""table"" = '{0}' and ""field"" = '{1}';", 
                 tableName, columnName)

关于c# - 逐字转义字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652310/

相关文章:

c# - 单元测试下恢复SQL Server时避免恢复卡住

c# - 如何使用 ADB2C 实现身份验证端点

c - 如何用等效的 strcat() 替换 memcpy() ?

javascript - js字符串嵌套

java - 在jsp异常中转义xml字符

c# - 在 C# 中用复杂的语法解析逗号分隔的字符串

c# - 在 Windows Phone 中解析 JSON 失败

Java 11 紧凑字符串 char[] 到 byte[] 背后的魔法

arrays - Swift - 将 url 内容排序到数组中

php - 带有 Symfony 2 的 Twig 显示 prod 和 dev 之间不同的 json 编码变量