有人知道为什么有时在commandText字符串之前使用@吗?
两者似乎都工作得很好。
command.CommandText = @"SELECT id FROM users";或
command.CommandText = "SELECT id FROM users";发布于 2009-07-22 00:06:53
这是C#的逐字字符串表示法。
一字不差的字符串文字前面有一个前导@,该@后面的引号之间的任何内容都将被视为字符串文字的一部分,而无需转义。
请参阅String literals
C#支持两种形式的字符串文字:常规字符串文字和逐字字符串文字。
常规字符串文字由零个或多个双引号括起的字符组成,如"hello",并且可以包括简单转义序列(例如制表符的\t )以及十六进制和Unicode转义序列。
逐字字符串文本由一个@字符后跟一个双引号字符、零个或多个字符以及一个结束双引号字符组成。 @"hello"__.就是一个简单的例子。在逐字字符串文字中,分隔符之间的字符是逐字解释的,唯一的例外是引号转义序列。特别是,简单转义序列、十六进制转义序列和Unicode转义序列不会在逐字字符串文字中处理。逐字字符串文字可以跨多行。
最有可能的情况是,查询跨越多行,而编写代码的人希望将其放在多行中,如下所示:
command.CommandText = @"SELECT id
FROM users";然而,如果没有逐字字符串字面量,则必须执行以下操作:
command.CommandText = "SELECT id"
+ " FROM users";发布于 2009-07-22 00:11:17
&=与号
@=以(或以)
发布于 2009-07-22 00:26:43
@是逐字字符串运算符。它在处理正则表达式时非常方便。如果要查找空格字符,可以指定
new RegEx( @"[\w]+") 而不是
new RegEx("[\\w]+")以转义“\”。该示例更适用于更复杂的正则表达式。
https://stackoverflow.com/questions/1162390
复制相似问题