Possible Duplicate:
.NET的字符串前面的 @是什么?

我有以下代码:

new Attachment(Request.PhysicalApplicationPath + @"pdf\" + pdfItem.Value)

什么是@签名吗?

答案

它与Filepath无关。它改变了字符串的逃脱行为。

在字面的字符串前缀@逃脱序列以\被禁用。这对于filepaths很方便,因为\是路径分离器,您不希望它启动逃生序列。

在普通字符串中,您必须逃脱\进入\\因此,您的示例看起来像这样的" PDF \"。但是由于它的前缀@唯一需要逃脱的角色是"(被逃脱为"")和\可以简单地出现。

此功能对于包含字符串文字方便\例如filepaths或Regexes。

对于您的简单示例,收益并不大,但是图像您有一条完整的路径"C:\\ABC\\CDE\\DEF"然后@"C:\ABC\CDE\DEF"看起来好多了。

对于正则表达式,这几乎是必须的。正则是几个\如果您需要逃脱其他角色,已经逃脱了其他角色,并且通常几乎无法读取。

来自: stackoverflow.com