【发布时间】:2009-11-20 14:07:48
【问题描述】:
我碰到过使用这两种表示法中的任何一种的例子。我找不到任何关于它的信息,说明哪一个是常见的,为什么允许使用 2 个符号,以及两者之间是否真的存在任何细微差别。
谁有想法?
【问题讨论】:
-
好问题..我自己一直想知道。
标签: c# .net serialization
我碰到过使用这两种表示法中的任何一种的例子。我找不到任何关于它的信息,说明哪一个是常见的,为什么允许使用 2 个符号,以及两者之间是否真的存在任何细微差别。
谁有想法?
【问题讨论】:
标签: c# .net serialization
不,没有功能差异。
你问为什么会有两种不同的风格?为简洁起见,允许使用第一种表示法。允许使用第二种表示法,因为某些属性带有参数:
[Category("Foobar related methods.")]
public void Foo()
{
}
还要注意 [Serializable] 实际上只是 [SerializableAttribute()] 的简写 - C# 允许您省略 Attribute 后缀以及空的构造函数括号。
【讨论】:
不,没有区别。 [Serializable] 只是 [Serializable()] 的语法糖,因为如果有默认属性构造函数,C# 语法会让你错过构造函数括号。
请注意,两者都是 [SerializableAttribute()] 的语法糖,因为属性声明也会让您错过 Attribute 后缀。
【讨论】:
都使用默认的c'tor,完全没有区别。
【讨论】: