我使用resharper为我的asp.net mvc应用程序格式化代码,它在DisplayName属性中使用@更改了我的所有代码。我尝试在谷歌搜索这个,以找出@在这里做什么,但我找不到令人满意的搜索结果。告诉我有关在displayname属性中with和with out之间的区别。
[DisplayName("Meeting Date")]
[DisplayName(@"Meeting Date")]
答案 0 :(得分:5)
这在属性中完成的事实并不重要。在字符串文字前面使用'@'字符称为逐字字符串,并导致忽略任何转义序列,允许您这样做:
var filename = @"C:\Filename.ext"
而不是:
var filename = "C:\\Filename.ext"
很多人喜欢这样,因为它更漂亮。 Resharper喜欢在字符串文字前加上“@”符号。
我记得Resharper建议您将可本地化的字符串移动到资源文件中或逐字逐句地创建它们。在您的情况下,看起来您接受了建议(显式或通过代码清理)逐字创建字符串。您可以关闭Resharper下的逐字字符串建议 - >选项 - >代码编辑 - > C# - >上下文操作 - >转换为逐字字符串。
实际上,我不确定为什么ReSharper会将Attribute构造函数值检测为localizable,因为它们必须是编译时常量,所以它可能基于其他一些条件。发送给support@jetbrains.com的快速电子邮件应该会很快为您解决。
注意:“@”符号也可以在保留字前面使用,以便将其用作变量名,但在上面的示例中并非如此:
var @string = "string";