首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Data.DataTable函数的差异

System.Data.DataTable函数的差异
EN

Stack Overflow用户
提问于 2014-02-18 20:23:14
回答 2查看 71关注 0票数 0

只是想找出这两行代码之间的区别。他们似乎也在做同样的事情,但我担心我错过了一些东西,也许会对未来产生影响。设置数据表的正确使用是哪一种?

我将使用这个数据表作为我的示例

代码语言:javascript
复制
System.Data.DataTable dtExample = new System.Data.DataTable();

这两种方法似乎给了我同样的东西..。

代码语言:javascript
复制
dtExample = Function.GetURLTable(); // Function which returns a new System.Data.DataTable object.

// or

dtExample = Function.GetURLTable().Copy(); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-18 20:29:01

这将创建一个空表,而不带默认构造函数的列(请注意new):

代码语言:javascript
复制
System.Data.DataTable dtExample = new System.Data.DataTable();

这使用您的函数,它返回一个完全初始化和填充的函数(?)表:

代码语言:javascript
复制
dtExample = Function.GetURLTable();

它使用相同的函数和DataTable.Copy创建具有相同模式和数据的克隆:

代码语言:javascript
复制
dtExample = Function.GetURLTable().Copy(); 

最后一个没有意义,因为它创建了一个无效的副本。

第一个ist不相关,因为它只使用默认构造函数。如果使用GetURLTable获取表,则是多余的。

因此,如果没有更多的细节,这似乎是最合适的:

代码语言:javascript
复制
System.Data.DataTable dtExample = Function.GetURLTable();
票数 2
EN

Stack Overflow用户

发布于 2014-02-18 20:31:05

据我所知,第一行只调用您的函数,然后将其赋值给dt,但是第二行由于.Copy调用了函数,然后创建了您刚才生成的dt的精确副本,并将其赋值在那里。基本上,第二种方法使用的内存/存储量是第一种方法的两倍;除非您希望对表进行更改,并且仍然保留初始Datatable,否则不要使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21864503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档