2017-08-28 65 views
0

有问题说明问题标题,但我认为总结它。C#是否可以将称为方法的对象另存为另一个对象作为参考节点

我想这样做是:

对象1具有增加了一个子对象的阵列的方法;对象2通过该方法的参数传递;那么,我希望对象2在添加时自动将对象1分配给它的父参考节点。

这里的一个例子:

Room1 = new Area(10, 10, "Anthony's House"); 
    R1_LivingRoom = new SubArea(5, 5, "Living ROom"); 
    int[] loc = new int[2] {10,10 }; 
    Room1.setSubArea(loc, R1_LivingRoom); 
    R1_LivingRoom.Parent = Room1; 

我想跟踪层次,而不需要指定它自己就像这个例子的一种方式。这将是很好,如果:

Room1.setSubArea(loc, R1_LivingRoom); 

自动预制:

 R1_LivingRoom.Parent = Room1; 

在被添加到会议室1。

我在做唯一可能的方法吗?直接分配或通过参数排序传递Room1?还是有办法让它通过setSubArea添加时,它可以引用Room1的调用对象并自动将它分配给父对象?

感谢,

回答

2

这应该工作:

public class Room 
{ 
    public void setSubArea(int[] loc, SubArea room) 
    { 
     //some code 
     room.Parent = this; 
    } 
} 
+0

这就是我最初做,并没有为我工作。当我打电话给room.Parent时,它不会返回它。但是当我将它直接分配到外部时,它确实(room.Parent = Room1)。 “this”是否真的不会返回对调用对象的引用? – user455046

+1

它必须工作,可能你正在某处放置对象或做别的事情,如果没有深入了解你的代码,我就说不出什么。尝试一些非常简单的测试案例,这样做,你会看到它的工作原理。 –

+1

是的,它的工作。我正在进行一些限制检查,并忘记将其限制在范围内。谢谢,我需要学会仔细检查更多。 – user455046

相关问题