0

このコードを書いているときに、予期しない状況が発生しました。どうすれば解決できますか?

KurumReferans tempReferans = new KurumReferans();
tempReferans = kRef; 

if (kurumDetaylari.IsTakipMekanizmasiKullaniyor == true)
{
    KurumReferans kRefIstakip = new KurumReferans();
    kRefIstakip = kRef;
    kRefIstakip.Referans = "SORUMLU";
    kRefIstakip.Yontem = "SORUMLU:";
    kRefIstakip.Tipi = Tipi.Zorunlu;
    kRefIstakip.Parent = kurum;
    PostAddEdit(db.KurumReferans, kRefIstakip, cmd, "", "", "", "");
}

最初に割り当てます。

tempReferans = kRef;

kref他のオブジェクトに割り当てた後、

KurumReferans kRefIstakip = new KurumReferans();
kRefIstakip = kRef;
kRefIstakip.Referans = "SORUMLU";

tempReferansオブジェクトの値は変更されますが、古い値が必要です。

4

2 に答える 2

0

行で:

kRefIstakip = kRef;

オブジェクトkRefは によっても参照されkRefIstakipます。にコピーするのではなく、kRefインスタンスをに割り当てているためです。kRefIstakipkRefkRefIstakip

参照型オブジェクトでは、コード:

obj1 = obj2;

obj2の値を にコピーしませんが、参照をobj1にコピーします。そして、両方が同じメモリ位置にアクセスできます。obj2obj1

于 2013-10-09T12:18:39.727 に答える