2012-02-23 71 views
0

让说,我有以下类:接入领域,其中列表属于

class Shape 
{ 
    public int widht; 

    public List<Point> points; 
} 

,并在课堂上点我想用这个widht财产类的形状,因此,如果“点”属于这个名单我希望有可能使用“容器”属性。我也想序列化然后类Shape,所以我不认为我可以使用构造函数的参数。

编辑: 我会说这看起来像我的应用程序: 我有一流的设备

class Device 
{ 
string connection; 
List<Task> tasks; 
} 

和任务

class Task 
{ 
    void DoTask() 
    { 
    and here i need the connection 
    } 
} 

所以我只是喜欢这样做则的foreach(任务在任务)task.DoTask()但我必须传递额外的“this”像task.DoTask(this)或连接,我认为我应该有我的容器acces,如果它允许我。

+1

好的。你的问题是什么? – asawyer 2012-02-23 16:56:41

+0

也许脱离主题,为什么点有一个宽度? – 2012-02-23 16:57:25

+0

我怎么可能访问宽度从类点? – kosnkov 2012-02-23 16:57:46

回答

3

没有对象的“所有者”的一般概念。毕竟,同样的Point参考可能出现在几个地方。这样做的愿望通常表明设计的气味。如果你需要给Point对象提供更多信息,那大概是当你在做它时 - 它会将这些信息传递给适当的方法。

+0

乔恩我觉得有时候你不是一个人只有智能stackOverflow机器人:) – kosnkov 2012-02-23 17:00:39

0

最简单的方法之一是建立这两者之间的明确关联。例如:

public class Point { 

    Shape shape; 

    public Point(Shape shape) { 
     this.shape = shape; 
    } 

} 

在这个特定的实现中,每个点指向单个形状。你当然可以从点类中访问形状属性。

如果您可以控制它,序列化不应该是一个问题。