DataTable等号赋值与copy的区别

问题描述

有数据表dt1,dt2;若dt2=dt1,当dt1数据变更时,dt2也跟着变;而用dt2=dt1.Copy(),会出现以上情况吗,还是说dt2复制的是一份独立的数据,不受再原数据影响,还是复制引用,原数据改变其引用也跟着改?

解决方案

解决方案二:
人家文档上也有示例代码。你可以增加2、3行代码来测试一下是不是“跟着改”。自己稍微费点脑筋写几行代码来自己测试一下。
解决方案三:
引用1楼sp1234的回复:

人家文档上也有示例代码。你可以增加2、3行代码来测试一下是不是“跟着改”。自己稍微费点脑筋写几行代码来自己测试一下。

哈哈对啊自己测试一下
解决方案四:
=号是引用地址赋值,所以很容易理解,copy你实验下不就知道了,这种东西查资料什么的还不如实际实验下,new个daratable然后随便设置几列再赋个值不困难吧

时间: 2024-11-07 20:54:21

DataTable等号赋值与copy的区别的相关文章

C++中复制(copy) 和 虚复制(virtual copy) 的 区别

在继承过程中, 需要区分复制(copy)和虚复制(virtual copy); 在派生类转换为基类时, 复制(copy)有可能切掉(sliced down)派生对象的派生部分, 只保留基类部分, 使派生类的虚函数无法使用; 为了避免此情况, 如果传入是对象, 则可以定义虚函数clone, 使派生类继承此虚函数, 再传入容器, 可以重载方法; 另外, 如果传入是实参, 使用shared_ptr<Base>配合make_shared<Derived>添加容器, 也可以进行动态绑定; 再

SQL Server中使用set和select赋值时一些比较区别

SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值. 当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法. 下表列出 SET 与 SELECT 的区别.请特别注意红色部分.  代码如下 复制代码 /****************** 场景布置 ******************/ DROP TABLE # CREATE TABLE #(OrderId INT) INSERT #(OrderId) VALUES(1) INSERT #(OrderId) V

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

clone   是传递一个引用,相当于创建了一个指向原字符串的一个指针,copy是复制一个对象.   DataTable dt=new DataTable(); DataTable dtcopy=dt.copy(); DataTable dtclone=dt.clone(); 这两种方式都是创建了一个新的对象,copy复制的是值和一些约束等,clone复制的是架构,直接这样clone,则dtclone没有值. DataTable.Copy 方法 返回值       新的 DataTable,它具

strong vs copy

一.前言           在这里,我通过实例去介绍strong和copy的区别(%p打印出来对象的地址)  ViewController.h            1 2 3 4 5 6 7 8 9 10 11 12 13 14 #import <UIKit/UIKit.h>   @interface ViewController : UIViewController   @property(nonatomic,strong) NSString *name; @end ViewContro

spring的property赋值

问题描述 spring的property赋值 ****xml***** 请教下大神,这两种赋值方式有什么区别 解决方案 通过Spring配置文件中bean中的property赋值 解决方案二: 为什么看不到内容呢?

struct-C语言中结构体中的数组,不能直接赋值吗

问题描述 C语言中结构体中的数组,不能直接赋值吗 设有定义:struct{char mark[12];intnum1;double num2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是(C) (A) t1=t2; (B) t2.num1=t1.num1; (C) t2.mark=t1.mark;//mark为结构体中的数组,不能直接赋值?? (D) t2.num2=t1.num2; ?====如题参考答案说为结构体中的数组,不能直接赋值,为什么呢?那应该怎么赋值呢?求大侠指教 解决

c++-C++数据成员赋值方式问题

问题描述 C++数据成员赋值方式问题 在成员函数中给一个数据成员赋值,若该数据成员是"me",那么"me=1"和"me(1)"有何不同? 解决方案 me=1如果是初始化,将调用一个构造函数:如果不是,将调用operator=(int),如果me的类定义中没有operator=(int)或者int相关类型重载,将会调用带有一个int参数的构造函数构造一个临时对象,然后调用赋值操作符函数进行赋值 me(1)如果是初始化,将会调用一个构造函数,如果不是

简单谈谈java中final,finally,finalize的区别_java

(1) final:修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载 (2) finally:在异常处理时提供 finally 块来执行任何清除操作.如果抛出一个异常,那么相匹配的 catc

Shell学习笔记---变量赋值与运算(原创)

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的.  #!/bin/bash #Filename:prameter_parctise2 #Datetime:2010_12_24 09:24 #Discription:Practise of evaluating parameters # 等号赋值a=879echo "The value of \"a\" is $a."  # 使用'let'赋值let a=16+5 echo "The value