【问题标题】:Is my object copied memory or a pointer to the original object's memory?我的对象是复制的内存还是指向原始对象内存的指针?
【发布时间】:2013-09-08 15:38:48
【问题描述】:

对不起,如果这个问题看起来很奇怪,我不知道如何真正提出这个问题。因此,我不确定以前是否有人问过这个问题。

获取这段代码:

    Object obj = new Object();

    Object obj2;

    obj2 = obj;

所以我的问题是:

当我将obj 分配给obj2 时,obj2 是指向obj 的内存,还是运行时分配了与obj 的内存相同的新内存块?

谢谢,罗。

【问题讨论】:

    标签: c# oop memory-management


    【解决方案1】:

    obj2 具有对obj 指向的同一对象的引用。因为它们指向同一个对象,所以对obj2 的修改会“反映”在obj 中。

    【讨论】:

    • 谢谢,这就是我要找的答案。
    【解决方案2】:

    这里是一个简单的例子来说明它是参考而不是复制

     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
    

    【讨论】:

    • 如果你想在 C# 中创建一个对象的副本,你可以使用 ICloneable Interface du namespace System.Object 的实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 2015-07-13
    相关资源
    最近更新 更多