【问题标题】:Error after setting a bool to true [duplicate]将 bool 设置为 true 后出错 [重复]
【发布时间】:2014-01-14 17:48:45
【问题描述】:

我想将玩家 1 的 bool 值更改为 true,因为我对编程不是那么好(换句话说,菜鸟)我想知道如何做到这一点,请保持简单并解释。

这是播放器类的代码

class Player
{
    private string name;
    private int points;
    private bool skip;

public Player(string name, int points, bool skip)
{
    this.name = name;
    this.points = points;
    this.skip = skip;
}

public string getName()
{
    return name;
}

public bool Skip
{
    get { return skip; }
    set { skip = value; }
}
}

在主程序中我写这个是为了将skip的值改为true

s1.Skip == true;

但我不断收到错误消息“只有赋值、调用、递增、递减和新对象表达式可以用作语句”

谁能解释一下我做错了什么?

【问题讨论】:

  • s1.Skip = true; 而不是 == .
  • 这有 3 个赞?从字面上搜索Only assignment, call, increment, decrement, and new object expressions can be used as a statement 找到了多个答案(在SO上,顺便说一句)来回答这个问题。 -1,标记为重复。

标签: c#


【解决方案1】:

== 是一个运算符,它比较两个值是否相等,而您需要 = - 一个赋值运算符,将值分配给变量(或属性,在您的情况下)左边:

s1.Skip = true;

您可能会发现 C# 编程指南的 this part 很有用。

【讨论】:

    【解决方案2】:

    == 运算符是 平等 运算符。它返回一个布尔值,指示两个操作数是否相同。您需要 assignment 运算符,即=

    【讨论】:

      【解决方案3】:

      问题是您使用了双等号“==”。如果要设置变量,只需使用 1 等号。 (==) 是比较变量,实际上返回一个布尔变量。

      解决方案:

      s1.Skip = true;
      

      【讨论】:

        【解决方案4】:

        您正在使用 == 运算符,它用于比较 2 个值, 只需将您的运算符 == 更改为 =。

                Player p = new Player("test", 10, true);
                p.Skip = true;
        

        【讨论】:

          【解决方案5】:

          你的问题是==.use:

          s1.Skip = true
          

          【讨论】:

            猜你喜欢
            • 2014-01-01
            • 2016-12-30
            • 1970-01-01
            • 1970-01-01
            • 2020-06-27
            • 2015-04-25
            • 1970-01-01
            • 2017-01-02
            • 1970-01-01
            相关资源
            最近更新 更多