27

パフォーマンスが非常に重要なクラスに [Serializable] 属性を追加する必要があります。

この属性は、クラスの操作に対してパフォーマンスに影響を与えますか?

4

2 に答える 2

25

属性クラスのインスタンスは、最初にアクセスしたときにのみ作成されます。その特定のクラスでシリアル化を行わない場合、SerializableAttribute()コンストラクターは呼び出されないため、パフォーマンスの問題は発生しません。

属性コンストラクターに関する興味深い記事があります: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

于 2009-09-10T01:05:08.427 に答える
7

属性はメタデータ アノテーションであるため、実行時にクラスを別の方法で処理するようにランタイムによって解釈されない限り、実行時にクラスに重みを追加することはありません。

[Serializable] は、クラスがシリアライズ可能であることを示す規則として使用される単純なマーカー属性であり、効果はなく、ランタイムはクラスを特別な方法で処理しません。

于 2009-09-10T01:08:31.153 に答える