你能省略没有参数的属性的括号吗?

我注意到当我有[Serializable]而不是[Serializable()] ,代码仍然编译。

有没有规则可以省略括号? 这是一个好习惯吗? 除非我遗漏了什么,否则它对我来说似乎更具可读性。

关于最佳实践没有特别的规则,我在subect上看到过。

一般来说,我发现手工输入其属性的人省略了空的parens,但代码生成几乎总是明确地包含它们。

是的,您可以省略括号。

  [Serializable] [Serializable()] [SerializableAttribute] [SerializableAttribute()] 

有4种方法可以写出完全相同的属性。

通常的做法是始终省略Attribute部分。
empty ()通常也会被省略,但实际上并不重要。 当然,您需要它们来设置任何参数或属性。

当您要使用的属性构造函数没有参数时,您可以错过() ,并且您不希望指定任何可选参数(属性值)。

有关详细信息,请参见此处

从语言的角度来看,省略该属性是合法的。 我不知道围绕它的任何最佳实践,但总的来说,我发现开发人员如果没有必要,就会省略它们。