我正在创建一个简单的用户控件。我有4个积分,我正在尝试使用e.Graphics.FillPolygon(brush, shape);
shape
是使用Point[] shape = { Target, PointB, PointC, PointD };
这些要点来自以下几点:
Point target = new Point(0, 0);
public Point Target {
get { return target; }
set { target = value; }
}
Point pointB = new Point(100, 0);
public Point PointB { get; set; }
// get { return pointB; }
// set { pointB = value; }
//}
Point pointC = new Point(0, 100);
public Point PointC {
get { return pointC; }
set { pointC = value; }
}
Point pointD = new Point(200, 500);
public Point PointD {
get { return pointD; }
set { pointD = value; }
}
我的问题是使用public Point PointB { get; set; }
似乎不起作用,所以我必须写出整个get { return pointB; } set { pointB = value; }
速记符号有什么特别之处吗?
在使用简写符号时,似乎只是忽略了PointB
。
此外,在访问者位之前或之后使用Point target = new Point(0, 0);
是否合适:
Point target = new Point(0, 0);
public Point Target {
get { return target; }
set { target = value; }
}
或
public Point Target {
get { return target; }
set { target = value; }
}
Point target = new Point(0, 0);
答案 0 :(得分:1)
初始化应如下所示(较新的C#版本,C#6.0或更高版本):
public Point PointB { get; set; } = new Point(100, 0);
当你这样做时:
Point pointB = new Point(100, 0); // Never used, not a backing field.
public Point PointB { get; set; } // Has a backing field that you cannot refer to.
私人pointB
从未使用过。自动属性的支持字段为不,称为pointB
。它有一个无法使用的名称,如果不使用该属性,您将无法访问它。