zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C# DataTable Copy() 与 Clone()区别

c# 区别 copy clone dataTable
2023-09-14 09:04:36 时间
DataTable dtclone=dt.clone(); 这两种方式都是创建了一个新的对象,copy复制的是值和一些约束等,clone复制的是架构,直接这样clo

clone   是传递一个引用,相当于创建了一个指向原字符串的一个指针,copy是复制一个对象。  

DataTable dt=new DataTable();

DataTable dtcopy=dt.copy();

DataTable dtclone=dt.clone();

这两种方式都是创建了一个新的对象,copy复制的是值和一些约束等,clone复制的是架构,直接这样clone,则dtclone没有值。

DataTable.Copy 方法

返回值
       新的 DataTable,它具有与该 DataTable 相同的结构(表架构和约束)和数据。
注意:如果这些类已经过派生,则副本也具有相同的派生类。
示例
       以下示例使用 Copy 方法创建初始 DataTable 的副本。

private void CopyDataTable(DataTable myDataTable){

 // Create an object variable for the copy.

 DataTable copyDataTable;

 copyDataTable = myDataTable.Copy();

 // Insert code to work with the copy.

}

DataTable.Clone 方法

返回值
       新的 DataTable,与当前的 DataTable 具有相同的架构。
备注
       注意   如果这些类已经过派生,则副本也具有相同的派生类。
示例
       以下示例创建DataTable 对象架构的复本。

private void GetClone(DataTable myDataTable){

 // Get a clone of the original DataTable.

 DataTable cloneTable;

 cloneTable = myDataTable.Clone();

 // Insert code to work with clone of the DataTable.

}
小注:clone()函数只复制了表的结构,显示数据的话,还需要绑定数据源。
Dockerfile中COPY和ADD 在 Dockerfile 中有COPY 和 ADD两个指令, 它们允许我们将文件从特定位置复制到 Docker 镜像中。它们有着非常类似的作用,又有细微的差别。
C++ STL STRING的COPY-ON-WRITE技术详解 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检查你是否在复习时,你才真正捡起课本看书。这就是“拖延战术”,直到你非要做的时候才去做。