我注意到当我有[Serializable]
而不是[Serializable()]
时,代码仍会编译。
是否有规则可以省略括号?这是一个好习惯吗?除非我遗漏了某些内容,否则它对我来说似乎更具可读性。
答案 0 :(得分:6)
关于最佳实践,没有特别的规则,我在subect上看到过。
一般来说,我发现手动输入属性的人省略了空白的内容,但代码生成几乎总是明确地包含它们。
答案 1 :(得分:6)
是的,你可以省略括号。
[Serializable]
[Serializable()]
[SerializableAttribute]
[SerializableAttribute()]
有4种方法可以写出完全相同的属性。
一般做法是始终省略Attribute
部分
空()
通常也会被省略,但实际上并不重要。当然,您需要它们来设置任何参数或属性。
答案 2 :(得分:2)
当您要使用的属性构造函数没有参数时,您可以错过()
,并且您不想指定任何可选参数(属性值)。
有关详细信息,请参阅here
答案 3 :(得分:1)
从语言角度来看,省略该属性是合法的。我不知道有任何关于它的最佳实践,但总的来说,如果没有必要,我发现开发人员会省略它们。