求助: deepclone 分析
現在有三實體.A,B,C.它們的包涵關系是A中有B,同時B也保留有A的ID.B中有C.如下:A
{
.......
AcDbSoftPointerId ID_B;
}
B
{
.......
AcDbSoftPointerId ID_A;
AcDbSoftPointerId ID_C;
}
情況是:當A修改時,B將會通過反應器也被修改.B一旦被改,它包涵的C將被刪除,并重新生成一個C.也就是ID_C值改變了.
在A的deepclone中調用B的deepclone.B的deepclone調用C的deepclone.
現在的問題是:
當我做A的CP操作時.將會得到A1,B1,C1. A1,B1,C1,之間的關系完全正确.
A和B的關系也正确.但B和C的關系就不對了.雖然C确實是被刪除重新生成了,但是在刪除重新生成的函數中我已就地更新了B的ID_C值.CP操作後為什麼B的ID_C值還是原來的值?我非常不解.刪除重新生成和更新B的ID_C值是在同一個函數中進行的,為什麼其值卻沒有變?
页:
[1]