这是我收到错误的行:
_activeType == typeof(Reticle);
这是Reticle
类的定义方式。有些属性和方法可能没有多大意义,但我认为类的定义应该是关键问题:
public class Reticle : Shape
{
#region Fields
private readonly Path _path;
private bool _isClosed;
private PointCollection _points;
#endregion Fields
#region Constructors
public Reticle() // constructor
{
var geometry = new PathGeometry();
geometry.Figures.Add(new PathFigure());
_path = new Path { Data = geometry };
Points = new PointCollection();
}
#endregion Constructors
#region Properties
/// <summary>
/// Gets or sets a value that specifies the arc roundness.
/// </summary>
public Geometry Data
{
get
{
return _path.Data;
}
}
/// <summary>
/// Gets or sets a value that specifies if the polygon will be closed or not.
/// </summary>
public bool IsClosed
{
get
{
return _isClosed;
}
set
{
_isClosed = value;
}
}
/// <summary>
/// Gets or sets a collection that contains the points of the polygon.
/// </summary>
public PointCollection Points
{
get { return _points; }
set
{
_points = value;
}
}
protected override Geometry DefiningGeometry
{
get
{
return _path.Data;
}
}
#endregion Properties
#region Methods
private static Point CreateRectangle(Point p1, Point p2, double distance, bool firstPoint)
{
double segmentLength = Math.Sqrt(Math.Pow((p2.X - p1.X), 2) + Math.Pow((p2.Y - p1.Y), 2));
//The distance cannot be greater than half of the length of the segment
if (distance > (segmentLength / 2))
distance = segmentLength / 2;
double rap = firstPoint ? distance / segmentLength : (segmentLength - distance) / segmentLength;
return new Point(p1.X + (rap * (p2.X - p1.X)), p1.Y + (rap * (p2.Y - p1.Y)));
}
private static Point CreateCrosshair(Point p1, Point p2, double distancePercent, bool firstPoint)
{
double rap = firstPoint ? distancePercent / 100 : (100 - distancePercent) / 100;
return new Point(p1.X + (rap * (p2.X - p1.X)), p1.Y + (rap * (p2.Y - p1.Y)));
}
#endregion Methods
#region Other
#endregion Other
}
我是 C# 新手,我不知道为什么会发生错误。任何人都知道我应该如何纠正错误?