Asp.net mvc用@显示名称属性

Kur*_*ula 3 c# asp.net-mvc attributes

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

[DisplayName("Meeting Date")]
[DisplayName(@"Meeting Date")]
Run Code Online (Sandbox Code Playgroud)

Eri*_*ham 5

这在属性中完成的事实并不重要.在字符串文字前面使用'@'字符称为逐字字符串,并导致忽略任何转义序列,允许您这样做:

var filename = @"C:\Filename.ext"
Run Code Online (Sandbox Code Playgroud)

而不是这个:

var filename = "C:\\Filename.ext"
Run Code Online (Sandbox Code Playgroud)

很多人喜欢这样,因为它更漂亮.Resharper喜欢在字符串文字前加上'@'符号.

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

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

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

var @string = "string";
Run Code Online (Sandbox Code Playgroud)

  • @Justin,从技术上讲,这属于允许通常需要使用\来转义字符的类别.在这种情况下,它将允许字符串中的文字换行而不是通常的\n. (2认同)