Possible Duplicate:
What's the @ in front of a string for .NET?

我有以下代码:

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

@号标志是做什么的?

推荐答案

它与文件路径无关.它改变了字符串的转义行为.

在前缀为@的字符串文字中,以\开头的转义序列被禁用.这对于文件路径很方便,因为\是路径分隔符,您不希望它启动转义序列.

在一个普通的字符串中,你必须从\转义到\\,所以你的例子看起来像"pdf\\".但是因为它的前缀是@,所以唯一需要转义的字符是"(转义为""),\可以简单地出现.

此功能对于包含\的字符串文字(如文件路径或正则表达式)非常方便.

对于你的简单例子来说,增益并没有那么大,但如果你有一个完整的路径"C:\\ABC\\CDE\\DEF",那么@"C:\ABC\CDE\DEF"看起来会更好.

对于正则表达式来说,这几乎是必须的.一个正则表达式通常已经包含了\个转义字符,如果需要转义,它通常会变得几乎不可读.

Asp.net相关问答推荐

JWT 和 Google 在 Razor 页面中进行身份验证和授权

在具有多个项目(API/服务/数据等)的解决方案中编写 SignalR 服务的最佳方法是什么?

如何防止 IISExpress 和我的网站文件夹弄乱我的文档文件夹?

Linq 将复杂类型聚合成一个字符串

业务线应用程序:F# 会让我的生活变得轻松吗?

ASP.NET 如何将控件呈现为 HTML?

ASP.NET MVC4 jquery/javascript 包的使用

如何在 Kendo UI 中获取下拉列表中选定项目的文本?

Web Api 请求内容在操作过滤器中为空

HTTP 错误 401.3 - 未经授权

Ef core:执行 MaxAsync 时序列不包含任何元素

无法复制文件.访问路径被拒绝

修改 web.config 时如何防止 ASP.NET 应用程序重新启动?

如何判断用户代理是 ipad 还是 iphone?

如何在 GridView 中隐藏 TemplateField 列

投票有什么问题?

在c#中显示带有换行符的标签文本

Unity 中的单例每个调用上下文(Web 请求)

ASP.NET MVC2/3 中runAllManagedModulesForAllRequests的正确用法是什么?

如何使用实体框架执行原始 SQL 查询而无需使用模型?