1

私はこれをやろうとしています:

   Data4JS D4JS = (Data4JS)GlobalHelper.GetCurrentSession()["Data4JS"];
    GlobalHelper.GetCurrentSession()["Data4JS"] = null; 
    return D4JS;

問題は、D4JS も null に設定することです。コードをいくつかのメソッド呼び出しに分割したくないのですが、他にどうすれば簡単に達成できますか?

4

3 に答える 3

2

new キーワードを使用するだけで、参照やクローン オブジェクト メソッドを使用する必要がなくなります。

オブジェクトのディープ クローニング

于 2012-08-14T09:06:59.980 に答える
0

オブジェクトが十分に単純で、パブリック プロパティがあり、必要なのはプロパティの値だけであると仮定すると、次のようなことができます。

Data4JS D4JS = (Data4JS)GlobalHelper.GetCurrentSession()["Data4JS"];
Data4JS result = new Data4JS
{
    //Set your result object to the one in 
    //session by manually copying over the property values
    Property1 = D4JS.Property1;
};

GlobalHelper.GetCurrentSession()["Data4JS"] = null; 

return result;

それ以外の場合は、必要なものを達成するためのよりクリーンな方法として Freeman が提案したものを使用してください。

于 2012-08-14T09:40:33.760 に答える
0

その場合、シリアル化を使用してディープ コピーを実行します。

于 2012-08-14T09:08:54.857 に答える