c#对象给对象赋值时的问题

namespacetestoo{classProgram{structtest{publicintage;}staticvoidMain(string[]args){//... namespace testoo
{
class Program
{

struct test
{
public int age;
}

static void Main(string[] args)
{
//值类型
test tt1;
test tt2;
tt1.age = 18;
tt2 = tt1;
tt2.age = 20;
Console.WriteLine(tt1.age.ToString()+tt2.age.ToString());

//引用类型
ceshi ce1 = new ceshi();
ceshi ce2 = new ceshi();
ce1.Age = 18;
ce2 = ce1;
ce2.Age = 20;
Console.WriteLine(ce1.Age.ToString()+ce2.Age.ToString());
Console.Read();
}
}

class ceshi
{
public int Age;
}
}
我是学习C#的新手,看了下书,不明白值类型和引用类型的区别,上面的代码第一次输出的是1820,第二次输出是2020
哪位高手能用通俗的语言解释一下,比如说出在内存中如何存储的过程。
还有一个问题是,“=”号的作用是赋值,将右边的值赋给左边,但是上面的
等号两边都是结构对象或者类对象,这样也是在赋值吗,还是其他别的什么,求教高手解答!

谢谢了
展开
 我来答
wujiazhao1988
2009-08-25 · TA获得超过413个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:304万
展开全部
结构体和类的区别就在这里,结构体的是值类型,而类是引用类型,所以结构体在用=赋值的时候,不是指针发生变化,而是值的变化,而引用类型的就只是内存的指针发生了变化,每一个变量其实都是引用,而不是有具体的值,他们只是指向内存中的某个未知。所以,第二题那里,c2=c1,也就是会所c2指向跟c1一样,这样的花,c2发生变化,c1也会跟着变。
柴关贵深0m
2009-08-25 · TA获得超过1142个赞
知道小有建树答主
回答量:1270
采纳率:0%
帮助的人:0
展开全部
值类型tt2 = tt1;
tt2是tt1的复制品,和他没关系。
引用类型ce2 = ce1;
ce2和ce1是一个对象,一个改变另一个也相应改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式