初学编程请问一个关于变量的菜鸟级问题!

问题描述

请看如下代码:DataTabletb1,tb2;DataRowdr1,dr2;tb1=newDataTable("test1");tb1.Columns.Add("thread_id",System.Type.GetType("System.String"));tb1.Columns.Add("value",System.Type.GetType("System.String"));dr1=tb1.NewRow();dr1["thread_id"]="st1";dr1["value"]="st1_value";tb1.Rows.Add(dr1);dr2=dr1;dr2["value"]="dr2_value";问题:为什么行变量dr2=dr1后,我改变dr2的值但test1中的值和dr1行的值都在跟着变,难到用dr2=dr1后dr2变量不是dr1副本吗?在C#中类似这样的情况叫什么名?在MSDN中什么地方有相关说明?谢谢!!

解决方案

解决方案二:
这个最后一行没有提交至数据库前程序一直认为是新行
解决方案三:
DataRow是引用类型(ReferenceType),传递的都是引用,所以dr2=dr1后,dr2和dr1都指向同一个DataRow了,你修改任何一个另外一个都跟着变
解决方案四:
引用类型与值类型的区别

时间: 2024-10-28 12:03:00

初学编程请问一个关于变量的菜鸟级问题!的相关文章

java 编程-关于java对象调用的一个菜鸟级问题

问题描述 关于java对象调用的一个菜鸟级问题 本人新手,币也不够,帮帮忙吧大家.学java不久,遇到这么一个问题:怎么在一个类中调用另一个类的对象获取该对象数据呢?(两个类不在同一个包里)如包a中有class A{} 和两个对象A a1=new A():A a2=new A();包b中有class B{}.我要在b包中访问a1和a2应该怎么访问呀?要求b包不再生成新的A类对象,且A类不能是单例. 解决方案 a中添加class Global{ static public A a1; static

随笔——初学编程,急而不慌

晚上看学生的博客.刚学几周C++的同学,水平差别已经相当大了.前两年的差别没有这么大,刚起步,投入多少直接决定了感觉是否能来.为一些同学的状态着急,初入大学的懈怠期何时才能出来?! 一位同学发来了私信: 学生:老师,我很生气,写好了程序,仅因为一个大括号的错误无法发表.还有,程序写好了,无错误,却无法运行,同学说我工程建错了,结果费了九牛二虎之力,博文无法发表! 迂者:唐僧师徒历经--终于取得真经而归.这一切,都是需要你经历的.我们重视最后的结果,但这个过程,更加珍贵! 学生:老师,如果这种情况

由C#风潮想起的-给初学编程者的忠告(转贴)

编程|初学 由C#风潮想起的-给初学编程者的忠告(转贴)   出处     http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39041202,00.htm    我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶.我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心.而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等

Python多进程编程下线程之间变量的共享问题

  这篇文章主要介绍了探究Python多进程编程下线程之间变量的共享问题,多进程编程是Python学习进阶中的重要知识,需要的朋友可以参考下 1.问题: 群中有同学贴了如下一段代码,问为何 list 最后打印的是空值? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 from multiprocessing import Process, Manager import os   manage

初学java 请问怎么用eclipse编辑已有的java文件呢

问题描述 初学java 请问怎么用eclipse编辑已有的java文件呢 要编辑的java文件目录如下: java文件的内容如下: 问题来了,如何用eclipse编辑这个java文件呢,我试着新建了java项目,并把以上文件引入到src下,但是编辑时候,会显示下面的错误: 我是初学java请问应该怎样用ecplise编辑现有目录下的java文件,并保存为.class文件呢?我知道肯定是我引入文件不全或者没有正确引入,应该怎么操作呢因为急着要用,所以也没时间学习java基础,所以最好能详细一点,谢

强制转换-请问一个关于指针操作数据的问题!

问题描述 请问一个关于指针操作数据的问题! 嵌入式程序,编译器IAR,CPU 瑞萨unsigned char a[]={0x010x020x030x040x050x06};int test(void){ unsigned short *p=(unsigned short *)(&a[1]); unsigned short temp=p[0];//此时编译器Watch 里面 p[0]=0x0302 temp=0x0201 if(0x0302==p[0])//走else { //do somethi

《GO并发编程实战》—— 条件变量

声明:本文是<Go并发编程实战>的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文. 我们在第6章讲多线程编程的时候详细说明过条件变量的概念.原理和适用场景.因此,我们在本小节仅对sync代码包中与条件变量相关的API进行简单的介绍,并使用它们来改造我们之前实现的*myDataFile类型的相关方法. 在Go语言中,sync.Cond类型代表了条件变量.与互斥锁和读写锁不同,简单的声明无法创建出一个可用的条件变量.为了得到这样一个条件变量,我们需要用到sync.NewCond函数

c++-小女子初学编程,遇到的问题不少,希望各位大神耐心指教。。非常感谢!

问题描述 小女子初学编程,遇到的问题不少,希望各位大神耐心指教..非常感谢! 题目:声明字符型静态数据成员ServerName,保存其服务器名称;声明整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称.在头文件client.h中声明类,在文件clent.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员 下面是我写的程序: #include using namespace std; class CLIENT {

gui-Java画板代码 请问这个flag变量具体是什么作用?

问题描述 Java画板代码 请问这个flag变量具体是什么作用? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DrawPanel extends JPanel { private JPanel right,left;//建立2个面板 private JRadioButton op2; private int f=2; private int sx, sy, x,y; **privat