我使用两种符号中的任何一种都会遇到一些例子。我找不到任何关于它的内容,告诉哪一个是常见的,为什么允许2个符号,以及两者之间是否存在任何细微差别。
有人有想法吗?
答案 0 :(得分:24)
不,没有功能差异。
为什么要问两种不同的款式?第一种表示法是为了简洁。允许使用第二种表示法,因为某些属性采用参数:
[Category("Foobar related methods.")]
public void Foo()
{
}
另请注意,[Serializable]实际上只是[SerializableAttribute()]的简写 - C#允许您省略Attribute后缀以及空构造函数parens。
答案 1 :(得分:9)
不,没有区别。 [Serializable]
只是[Serializable()]
的语法糖,因为如果有默认的属性构造函数,C#语法会让你错过构造函数括号。
请注意,两者都是[SerializableAttribute()]
的语法糖,因为属性声明也会让你错过属性后缀。
答案 2 :(得分:6)
都使用默认的c'tor,没有任何区别。