如何从另一个类访问列表中的对象?

时间:2019-01-11 18:44:13

标签: c# oop generic-collections

我知道这里也有类似的问题,但我被困住了。我创建了一个点结构,其中包含x,y。我还创建了一个类以将点添加到列表中。我试图解析Reader类中的XML文件,并用该XML文件中的点填充列表。之后,我尝试使用在Reader类中解析的点在“作家类”中创建另一种数据格式。代码示例只是示例,但是我想要做的是相同的。

通常使用button1必须读取点并用它们填充列表,使用button2必须创建另一种数据格式。但是我得到了NullReferenceException。我想念什么?

点结构:

public struct Point2D 
{
        #region Constructors
        public Point2D(double x, double y)
        {
            this.X = x;
            this.Y = y;
        }
        #endregion Constructors
        public readonly double X;   
        public readonly double Y;
}

集合类:

public class List 
{
    public List<Point2D> points { get; }

    public List()
    {
        this.points = new List<Point2D>();
    }

    public void AddPoint(Point2D p)
    {
        this.points.Add(p);
    }
}

阅读器:

public class Reader
{
    public static void Read()
    {
        double X = 1.5;
        double Y = 2.5;

        var list = new List();

        list.AddPoint(new Point2D(X, Y));  
    }
}

作家:

public static class Writer
{
    public static void GetPoints(List list)
    {
        var X = list.points[0].X.ToString();
        StreamWriter sr = new StreamWriter(@"...\test.txt");
        sr.WriteLine(X);
    }
}

应用程序:

public partial class Form1 : Form
{
    public List List { get; private set; }
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Reader.Read();
    }
    private void button2_Click(object sender, EventArgs e)
    {
        Writer.GetPoints(this.List);
    }
}

0 个答案:

没有答案