我需要将[Serializable]属性添加到对性能非常敏感的类中。
此属性是否会对类的操作产生任何性能影响?
答案 0 :(得分:25)
属性类的实例仅在首次访问时创建。如果您不对该特定类进行任何序列化,则永远不会调用SerializableAttribute()
构造函数,因此不会导致任何性能问题。
这是一篇关于属性构造函数的有趣文章: http://www.codingonthetrain.com/2008/10/attribute-constructors.html
答案 1 :(得分:7)
属性是元数据注释,因此它们不会在运行时向类添加权重,除非运行时以某种方式解释它们使得它以不同的方式处理类。
[Serializable]只是一个标记属性,用作约定来表示该类是可序列化的,它没有效果,运行时不会以任何特殊的方式处理类。