私は最近、ASP.netアプリケーション内でSessionオブジェクトまたはApplicationオブジェクトを使用すると、参照によって値が渡されることを発見しました。asp.netアプリケーション変数は参照または値で渡されますか?
これは時間の大部分を占めていますが、処理が完了した時点で変更を破棄するため、データのコピーが必要な場所にあります。
私はまた、アプリケーションのルートに変数を設定することで、より良いパフォーマンスを持つグローバルアプリケーション変数を効果的に作成し、Session/Applicationオブジェクトのキャストクレイジーさをすべて排除することに気付きました。
アプリケーション変数が参照渡しか値渡しかを知りませんか?トピックのデータを掘り起こすことができず、現在Applicationオブジェクトのデータを新しい変数に「コピー」して処理するコードを削除したいと考えています。
ああ、私はそれを知らなかった!説明をありがとう。完了時に変更を破棄できるようにオブジェクトをクローンする方法はありますか? –
いいえ、おそらく、あなたの手作業のコピーコードを保持する必要があります。 .Netには実装可能なIClonableインターフェイスが含まれていますが、あまりうまくいきません。 .MemberWiseClone()メソッドもありますが、それは本当に深いコピーを作成しません。 –