C#error CS0201:只能将赋值,调用,增量,递减和新对象表达式用作语句 [英] C# error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement

查看:636
本文介绍了C#error CS0201:只能将赋值,调用,增量,递减和新对象表达式用作语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是我得到错误的行:

Here is the line where I am getting error:

_activeType == typeof(Reticle);

这是如何定义 Reticle 。一些属性和方法可能没有什么意义,但我认为类的定义应该是关键的问题:

Here is how the Reticle class is defined. Some of the properties and methods might not be making much sense, but I think the definition of the class should be the key issue:

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#的新手,我不知道为什么会发生错误。任何人都知道我该如何更正错误?

I am new to C#, and I have no idea why the error is happening. Anyone has any idea how I should correct the error?

推荐答案

我想你的意思是

_activeType = typeof(Reticle);

不是double ==

not the double ==

这篇关于C#error CS0201:只能将赋值,调用,增量,递减和新对象表达式用作语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆