0

有人可以帮我吗?:我正在尝试从我的班级“数字”中调用一个方法,以显示如果输入的数字超过 50,则在按钮上单击一个消息框会显示“高”,但如果它低于 50 它显示“低”。我无法弄清楚我在这里做错了什么。这是我班上的代码:

    private int number; 
    private string getNumber(int num)
    {

        number = num;
        return number.ToString();
    }

        public int numProperty
    {
        get { return number; }
        set { number = value; }
    }

     public void isHighorlow()
        {    
            if (number >=50)
            {

            }
            else
            {
                return;
            }

        }

注意: int "number" 也是从文本框中获取其值的属性。&这里是我的表格中的代码:

     numbers info = new numbers();
     private void Btn_Click(object sender, EventArgs e)
    { 
      info.numProperty = Convert.ToInt32(numberBOX.Text);
      info.isHighorlow = Messagebox.Show = ("High");
    }

我知道我还没有添加“低”位,因为我仍在尝试看看它是如何工作的。对不起,如果我还在学习 c# 看起来很混乱。我收到错误消息:无法分配 isHighorlow,因为它是方法组的一部分。而且我也意识到,如果我只是在文本框上做一个 if 语句会容易得多,但我正在练习类和方法,所以我正在尝试这样做。谢谢。

4

6 回答 6

3

我猜你想要这样的东西:

public string isHighorlow(int number)
{    
    if (number >=50)
    { 
         return "High";
    }
    else
    {
         return "Low";
    }
}


numbers info = new numbers();
private void Btn_Click(object sender, EventArgs e)
{ 
  Messagebox.Show(info.isHighorlow(Convert.ToInt32(numberBOX.Text)))
}
于 2012-10-14T17:19:47.087 回答
1

isHighorLow 是一种方法,而不是属性。

MessageBox.Show 是一种方法。

不确定您要做什么,但应该是:

 if(info.isHigh(Convert.ToInt32(numberBox.Text)))
   Messagebox.Show("High");
  else
    Messagebox.Show("Low");

这意味着你有一个方法 isHigh 像这样:

public bool isHigh()
{
   return number>=50
}
于 2012-10-14T17:19:51.607 回答
1

尝试以这种方式更改您的代码:

private int _number; 

private string GetNumber(int number)
{
    _number = number;
    return number .ToString();
}

public int Number
{
    get { return _number; }
    set { _number = value; }
}

public string IsHigh()
{   
    get { if (number >= 50) return true; }
}

numbers info = new numbers();
private void Btn_Click(object sender, EventArgs e)
{ 
    info.Number = Convert.ToInt32(numberBOX.Text);
    MessageBox.Show(info.IsHigh ? "High" : "Low");
}
于 2012-10-14T17:20:59.153 回答
1

在您的班级中,您已经定义了void isHighorlow().
这意味着您有一个不返回任何内容的方法。
当然,这种方法不能像您所做的那样用于表达式的左侧。

可能你想在课堂上写作

public bool isHighorlow() 
{     
    if (number >=50) 
    { 
        return true;
    } 
    else 
    { 
        return false; 
    } 

}

通过这种方式,您声明一个方法,如果内部值 >= 50 则返回 True,否则返回 false。
现在,在您的表单中,您可以以这种方式使用该方法

Messagebox.Show(info.isHighorlow() ? "High" : "Low"); 

但是,如果要求只是返回一个标志为真或假,最好使用只读属性以这种方式更改类代码

public bool isHighorlow() 
{     
    get
    {
        return (number >=50 ? true : false);
    } 
    // No set, read only
} 
于 2012-10-14T17:21:02.870 回答
1

IsHighOrLow 应该如下

    public bool isHighorlow()
    {    
        if (number >=50)
        {

           return true;
        }
        else
        {
            return false;
        }

    }

并在按钮单击

if (info.isHighorlow){
//say high
} else
{
// say low
}
于 2012-10-14T17:21:57.703 回答
1

(免责声明:仔细检查boolean每个 C# 的相关常量)

isHighOrLow 根本不做任何事情。也许这样会更好:

     public boolean isHigh()
        {    
            if (number >=50)
            {
                return true;
            }
            else
            {
                return false;
            }

        }

或者,更简洁地说:

     public boolean isHigh()
        {    
            return number >=50;
        }

当您调用它时,这可能更接近您的需要:

     numbers info = new numbers();
     private void Btn_Click(object sender, EventArgs e)
    { 
      info.numProperty = Convert.ToInt32(numberBOX.Text);
      if (info.isHigh())
      {
        Messagebox.Show("High");
      }
      else
      {
        Messagebox.Show("Low");
      }
    }
于 2012-10-14T17:24:15.690 回答