0

以下是一段似乎在 c# 中不起作用的代码,即使它在 c++ 中似乎可以接受。C# 似乎对对象实例化有不同的标准。

                IList<PointF> vertices = null;

                float radius = (int)(bitmap.Width/3);

                for (double theta = 0; theta < 2 * 3.14; theta += 0.1)
                {
                    PointF temp = new PointF();
                    temp.X = centre.X + radius*((float)(Math.Cos(theta)));
                    temp.Y = centre.Y + radius*((float)(Math.Sin(theta)));
                    vertices.Add(temp);
                }

其中 IList 是一个接口,PointF 是一个结构。Tbh 我不知道实现接口与类时的区别。

如果我不将“null”分配给顶点,则代码不会编译。但是,如果我确实分配了 null,那么在运行时我会收到一个错误“对象实例未设置为对象的引用”(因为顶点被声明为 null)。我怎样才能绕过这个错误?

4

2 回答 2

6

您必须实例化列表实例:

IList<PointF> vertices = new List<PointF>();
于 2013-06-07T14:58:29.937 回答
0

尝试为实现 的顶点创建一个实例IList<PointF>,例如:

IList<PointF> vertices = new List<PointF>();
于 2013-06-07T14:59:47.637 回答