试图弄清楚这两行代码之间的区别。他们似乎做了同样的事情,但我担心我会遗漏一些可能会在未来发生变化的事情。哪个是正确使用设置数据表?
我将把这个数据表用于我的例子
System.Data.DataTable dtExample = new System.Data.DataTable();
这两种方法似乎给了我同样的东西......
dtExample = Function.GetURLTable(); // Function which returns a new System.Data.DataTable object.
// or
dtExample = Function.GetURLTable().Copy();
答案 0 :(得分:2)
这将创建一个没有列的空表,其中包含默认构造函数(请注意new
):
System.Data.DataTable dtExample = new System.Data.DataTable();
这使用你的函数返回一个完全初始化和填充的(?)表:
dtExample = Function.GetURLTable();
这使用相同的函数和DataTable.Copy
来创建具有相同模式和数据的克隆:
dtExample = Function.GetURLTable().Copy();
最后一点是毫无意义的,因为它创造了无效的副本。
第一个不相关,因为它只使用默认构造函数。如果您使用GetURLTable
来获取该表,则这是多余的。
所以没有更多细节,这似乎是最合适的:
System.Data.DataTable dtExample = Function.GetURLTable();
答案 1 :(得分:0)
从我所知道的,看起来第一行只调用你的函数,然后将它分配给dt,但第二行是因为.Copy,调用函数但是然后创建你刚刚创建的dt的精确副本然后把它分配到那里。差不多,第二种方式使用的内存/存储量是第一种方式的两倍;除非您想对表进行更改并仍保留初始数据表,否则请勿使用。