【发布时间】:2011-07-05 20:04:33
【问题描述】:
在我的 winform 程序(在 vb.net 中)我写道:
Dim dt As New DataTable
'Get data from DB into dt
'...
Dim dttemp As New DataTable
dttemp = dt
dt.Clear()
'...
但是当我运行程序时,Clear() 清除了 dt 和 dttemp!
为什么? dt 和 dttemp 不应该是 DataTable 的两个不同实例吗?
(我终于找到了一个解决方案 - dttemp = dt.Copy() 而不是 dttemp = dt。但我仍然不明白为什么在这种情况下需要 Copy()。对不起,如果这是一个基本问题 - 我是一个初学者程序员。 )
【问题讨论】:
-
"dttemp = dt" 将您的临时变量分配给与您的主要“dt”相同的实例,因此它们都对同一对象持有相同的引用。更有意义?