我有以下无法编译的字符串:
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/