我创建了一个点结构,其中包含x,y。我还创建了一个类以将点添加到列表中。我试图解析Reader类中的XML文件,并用该XML文件中的点填充列表。之后,我尝试使用在Reader类中解析的点在“作家类”中创建另一种数据格式。代码示例只是示例,但是我想要做的是相同的。
通常使用button1必须读取点并用它们填充列表,使用button2必须创建另一种数据格式。但这是行不通的。我想念什么?
点结构:
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 :(得分:0)
我可以看到未分配 Form1 的 List 属性。这样 Writer.GetPoints(this.List); 就会失败。
您可以在 reader.Read()时返回列表,并将其分配给 Form1 的List属性,如下所示。
private void button1_Click(object sender, EventArgs e)
{
this.List= Reader.Read();
}
读取方法应进行如下更改。
public class Reader
{
public static List Read()
{
double X = 1.5;
double Y = 2.5;
var list = new List();
list.AddPoint(new Point2D(X, Y));
return list;
}
}