請問Class的一個奇怪的問題,急!

xwfjw 2004-11-15 08:44:32
例如:
Private m_clsJCL As clsLRGJobChkList_JCL
Private m_clsRollBackJCL As clsLRGJobChkList_JCL

Public Function FormShow(ByRef clsJCL As clsLRGJobChkList_JCL, Optional ByRef blnSave As Boolean)
Set m_clsJCL = clsJCL
Set m_clsRollBackJCL = clsJCL
End Function

如果改動m_clsJCL 之後,m_clsRollBackJCL 也會被改動了,
請問如何做到改動m_clsJCL 之後,而m_clsRollBackJCL 不會被改動?
...全文
164 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
creazyfish 2004-11-15
  • 打赏
  • 举报
回复
在vb中通常也只能这么做了
flyingZFX 2004-11-15
  • 打赏
  • 举报
回复
up
xwfjw 2004-11-15
  • 打赏
  • 举报
回复
victorycyz(中海) 的也是一種解決辦法,

AloneStarTan(孤星苍月)說的也對,有時候會有點麻煩。

期待 fzlong(修仙)的方法。
AloneStarTan 2004-11-15
  • 打赏
  • 举报
回复
To fzlong(修仙)
這主意好象挺不錯的,你說的方法要怎樣寫呢
fzlong 2004-11-15
  • 打赏
  • 举报
回复
是啊!但是你可以给你的class,添加一个方法,这个方法就是对你的class的属性,进行值传递,这样就好解决了!
AloneStarTan 2004-11-15
  • 打赏
  • 举报
回复
有沒有更好的辦法?
如果一個一個屬性賦值過去,好象有些麻煩,且如果欄位多,得寫很多東西
victorycyz 2004-11-15
  • 打赏
  • 举报
回复
with m_clsrollbackjcl
.属性1=clsjcl.属性1
.属性2=clsjcl.属性2
......
.属性n=clsjcl.属性n
end with
victorycyz 2004-11-15
  • 打赏
  • 举报
回复
Private m_clsJCL As clsLRGJobChkList_JCL
Private m_clsRollBackJCL As clsLRGJobChkList_JCL

Public Function FormShow(ByRef clsJCL As clsLRGJobChkList_JCL, Optional ByRef blnSave As Boolean)
Set m_clsJCL = clsJCL
Set m_clsRollBackJCL = new clslrgjobchklist_jck
with m_clsrollbackjcl
.属性1=clsjcl.属性1
.属性1=clsjcl.属性1
......
.属性n=clsjcl.属性n
end with
End Function
xwfjw 2004-11-15
  • 打赏
  • 举报
回复

請問有什麼解決辦法?
tztz520 2004-11-15
  • 打赏
  • 举报
回复
因为对象都是地址传递的,所以会改变值
AloneStarTan 2004-11-15
  • 打赏
  • 举报
回复
我現在很亂,我也覺得思路應該出現了問題
victorycyz 2004-11-15
  • 打赏
  • 举报
回复

我觉得真正需要检讨的是你的思路。为什么同一个对象,要在函数里修改它,又要在另一个变量(对象指针)中保存原对象?如果你的改动是对象中很小的一部分,应该直接把它的某个需要访问的属性值放到相应类型的变量中,然后对变量进行处理。
AloneStarTan 2004-11-15
  • 打赏
  • 举报
回复
屬性賦值過去很難行得通
我這個Class 裡面有個Collection,這個Collection裡面裝了些Class,這些裝在Collection裡的Class不知道怎麼賦過去

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧