DebuggerDisplayAttribute和DebuggerDisplay之间的区别

3
[DebuggerDisplayAttribute("{_name}")]

vs

[DebuggerDisplay("{_name}")]

有什么区别吗?其中一个是另一个的别名吗?当使用名为foo的属性时,VS是否会自动检查是否存在名为fooAttribute的类?


6
C# 允许你省略 "Attribute",因为每个属性都应该以它结尾。 - Eric Lippert
@Eric:这是现有答案中我所忽略的一个重要点:它适用于每个属性,甚至包括自定义属性。 - tanascius
3个回答

9

它们是相同的,无论你在结尾写不写Attribute,C#编译器都能够解析类型。


5

它们是相同的。在生成的代码中,尤其是通过CodeDom输出的代码中,你往往会看到完全限定名称。

你可以使用任何一个。编译器最终生成的内容都是相同的。


5

没有区别。在命名类时的标准惯例是附加单词Attribute,例如:

public class AlertAttribute : Attribute {}

使用此属性时,通常的惯例是省略单词,例如:

[Alert()]

来自属性 (C# 和 Visual Basic)

按照惯例,所有属性名称都以单词“Attribute”结尾,以区别于 .NET Framework 中的其他项。但是,在代码中使用属性时,您无需指定属性后缀。例如,[DllImport] 等同于 [DllImportAttribute],但 DllImportAttribute 是该属性在 .NET Framework 中的实际名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接