2017-10-06 99 views
0

下面的文章是关于传递参考类型相当丰富。但是,我现在有一个解决此问题的实际问题。我使用下面的代码将DataTable传递给第二个窗口;通过参考类型按值

Window2.LoadedTblData = _loadedTblData; 

一旦这已经通过我想用户继续到能够使用窗口1而不影响窗口2中的数据(这意味着操纵_loadedTblData)。即我想按价值传递表格,而不是通过引用。我将如何做到这一点?

Why is list when passed without ref to a function acting like passed with ref?

+0

只是对您的术语进行更正:您不会说您想“按价值传递表”,而是希望“传递表的副本”。 – Blorgbeard

+1

因此,问题...... – windowskm

+2

您的问题是:如何创建DataTable的副本,以便副本中的任何修改都不会反映回原始。这个问题是使用关于值/引用类型和传值/引用语义的错误假设提出的。如果你想要回答 – Vikhram

回答

2

如果你想拥有的结构和在每个窗口的表格中数据的副本,那么你就需要使用DataTable.Copy,而不是DataTable.Clone。

有关复制here的更多信息。

+0

这项工作为你服务@windowskm? –