我的对象是复制内存还是指向原始对象内存的指针?

时间:2013-09-04 23:42:09

标签: c# oop memory-management

对不起,如果这个问题看起来很奇怪,我不知道该怎么做。因此,我不确定此问题是否曾被提出过。

拿这段代码:

    Object obj = new Object();

    Object obj2;

    obj2 = obj;

所以我的问题是:

当我将obj分配给obj2时,是obj2指向obj的内存,还是运行时分配了一个与obj相同的新内存块{1}}记忆?

谢谢,Ro。

2 个答案:

答案 0 :(得分:2)

obj2引用了obj指向的同一对象。由于它们指向同一个对象,因此obj2中的obj的修改会被“反映”。

答案 1 :(得分:1)

这是一个简单的例子来说明它是一个参考而不是一个副本

 public class ClassObject
    {
        public int entier;

        public ClassObject(int p_Initial)
        {
            this.entier = p_Initial;
        }
    }



        ClassObject obj1 = new ClassObject(2);
        Console.WriteLine(obj1.entier); ==> Console obj1.entier = 2
        ClassObject obj2 = obj1;
        obj2.entier = 5;

        Console.WriteLine(obj1.entier); ==> Console obj1.entier = 5
        Console.WriteLine(obj2.entier); ==> Console obj2.entier = 5