3

我为我的 asp.net mvc 应用程序使用 resharper 来格式化代码,它用 DisplayName 属性中的 @ 更改了我的所有代码。我尝试在谷歌中搜索这个以找出 @ 在这里做了什么,但我找不到令人满意的搜索结果。有人可以告诉我在 displayname 属性中使用和不使用 @ 之间的区别。

[DisplayName("Meeting Date")]
[DisplayName(@"Meeting Date")]
4

1 回答 1

5

在属性中执行此操作的事实无关紧要。在字符串文字前使用“@”字符称为逐字字符串,并导致忽略任何转义序列,允许您执行以下操作:

var filename = @"C:\Filename.ext"

而不是这个:

var filename = "C:\\Filename.ext"

很多人喜欢它,因为它更漂亮。Resharper 喜欢将“@”符号放在字符串文字的前面。

我记得 Resharper 建议您将可本地化的字符串移动到资源文件中或逐字逐句制作。在您的情况下,您似乎接受了建议(明确地或通过代码清理)逐字制作字符串。您可以在 Resharper --> 选项 --> 代码编辑 --> C# --> 上下文操作 --> 转换为逐字字符串下关闭逐字字符串建议。

实际上,我不确定为什么 ReSharper 会检测到 Attribute 构造函数值是可本地化的,因为它们必须是编译时常量,所以它可能是基于其他一些条件这样做的。发送至support@jetbrains.com的快速电子邮件应该会很快为您解决。

注意: '@' 符号也可以用在保留字前面,以便将其用作变量名,尽管在上面的示例中并非如此:

var @string = "string";
于 2013-10-23T19:35:45.067 回答