高人请看源码:编译的时候报错 还没运行   public class CaremaPoints
{
float m_FontSize = 7.0F ;
Font m_TextFont = null ;
POINT32F[] startPoints = new POINT32F[15];
        PointF[] point8s = new PointF[8];
PointF[] points4 = new PointF[4];
CSubToyPoints[] pointStruct = new CSubToyPoints[4];
static CaremaPoints caremaPoints = null;
public  CaremaPoints(POINT32F[] points)
{
startPoints =points;
}
public CaremaPoints()
{
}
public POINT32F[] GetPoint8
{
get {return startPoints;}
set {startPoints = value;}
}
public void CaremaPointsSet(PointF[] points)
{
point8s =points;
Init();
}
public static CaremaPoints CreateCaremaPoint(POINT32F[] np)
{
if(null ==CaremaPoints.caremaPoints )
{
return CaremaPoints.caremaPoints =new CaremaPoints(np);
}
return CaremaPoints.caremaPoints;
}
public static CaremaPoints CreateCaremaPoint()
{
return CaremaPoints.caremaPoints;
}
public void Init()
{ int m =0;
for(int i = 0;i<6 ;i++)
{
float distance=  GetDistanceBetweenTwoPoints(point8s[i],point8s[i+2]);
float x0 = (point8s[i].x+point8s[i+2].x)/2;
float y0 = (point8s[i].y+point8s[i+2].y)/2;
pointStruct[m].X0 = x0;
pointStruct[m].Y0 = y0;
pointStruct[m].Name = distance.ToString()+"MM";
points4[m].X = point8s[i].x;
points4[m].Y = point8s[i].y;
m+=1;
i+=1; }
points4[3].X = point8s[6].x;
points4[3].Y = point8s[6].y;
float distance1=  GetDistanceBetweenTwoPoints(point8s[6],point8s[0]);
float x1 = (point8s[6].x+points8[0].x)/2;
float y1 = (point8s[6].y+points8[0].y)/2;
pointStruct[3].X0 = x1;
pointStruct[3].Y0 = y1;
pointStruct[3].Name = distance1.ToString()+"MM";
}
private  float GetDistanceBetweenTwoPoints(PointF p1, PointF p2)
{
float distance = 0;
float xDelta = Math.Abs(p2.X - p1.X);
float yDelta = Math.Abs(p2.Y - p1.Y);
distance = (float)Math.Sqrt(Math.Pow(xDelta, 2.0) + Math.Pow(yDelta, 2.0));
return distance;
} public void DrawP(Graphics g,float fRate)
{
try
{
if(points4.Length ==0 || points4 == null) return;
for(int j =0;j<3;j++)
{
g.DrawLine(Pens.Yellow,points4[j],points4[j+1]);
}
g.DrawLine(Pens.Yellow,points4[3],points4[0]);
m_TextFont =new Font("宋体",7.0f*fRate);
for(int i=0;i<4;i++)
{ g.DrawString(pointStruct[i].Name,m_TextFont,Brushes.Yellow,pointStruct[i].X0,pointStruct[i].Y0);
}
}
catch(ArgumentException ex)
{
MessageBox.Show(ex.Message);
}
} public void CutData()
{ startPoints =null;
points4 = null;
pointStruct = null;
CaremaPoints.caremaPoints =null;
GC.Collect();
}
}
在下面函数 关联到point8s[i].x point8s[i].y 的地方报错:不可访问System.drawing.pointf.x 因为它受保护级别限制
  这么多全部是public 为何会是保护级别限制 将上面的类型定义成public PointF[] point8s = new PointF[8];试过不行
 请问哪里出错 能救救可怜的小菜鸟我吗   public void Init()
{ int m =0;
for(int i = 0;i<6 ;i++)
{
float distance=  GetDistanceBetweenTwoPoints(point8s[i],point8s[i+2]);
float x0 = (point8s[i].x+point8s[i+2].x)/2;
float y0 = (point8s[i].y+point8s[i+2].y)/2;
pointStruct[m].X0 = x0;
pointStruct[m].Y0 = y0;
pointStruct[m].Name = distance.ToString()+"MM";
points4[m].X = point8s[i].x;
points4[m].Y = point8s[i].y;
m+=1;
i+=1; }
points4[3].X = point8s[6].x;
points4[3].Y = point8s[6].y;
float distance1=  GetDistanceBetweenTwoPoints(point8s[6],point8s[0]);
float x1 = (point8s[6].x+points8[0].x)/2;
float y1 = (point8s[6].y+points8[0].y)/2;
pointStruct[3].X0 = x1;
pointStruct[3].Y0 = y1;
pointStruct[3].Name = distance1.ToString()+"MM";
}