访问列表所属类中的字段

本文关键字:字段 列表 访问 | 更新日期: 2023-09-27 18:25:39

假设我有以下类:

class Shape
{
    public int widht;
    public List<Point> points;
}

在Point类中,我想使用Shape类中的这个widght属性,所以如果"Point"属于该列表,我希望有可能使用"container"属性。我还想序列化类Shape,所以我不认为我可以使用带参数的构造函数。

编辑:我会说它在我的应用程序中的样子:我有类设备

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

和任务

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

所以我只喜欢先做,然后foreach(任务中的任务)任务。DoTask(),但我必须传递额外的类似"this"的任务。DoTask(this)或我认为如果允许的话,我应该访问我的容器的连接。

访问列表所属类中的字段

对象的"所有者"没有一般概念。毕竟,相同的Point引用可能出现在几个地方。想要这样做通常意味着设计的味道。如果您需要向Point对象提供更多信息,则可能是在使用执行时,所以请将该信息传递给适当的方法。

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

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

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

如果你能控制它,序列化应该不是问题。