无法从类中调用方法

时间:2012-10-14 17:14:58

标签: c# class methods

有人可以帮我这个吗?: 我正在尝试从我的班级“数字”中调用一个方法来显示如果输入的数字超过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语句会更容易,但我正在练习类和方法所以我试图这样做。 谢谢。

6 个答案:

答案 0 :(得分: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)))
}

答案 1 :(得分:1)

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

MessageBox.Show是一种方法。

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

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

意思是你有一个方法就是这样:

public bool isHigh()
{
   return number>=50
}

答案 2 :(得分: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");
}

答案 3 :(得分:1)

在课堂上,您已定义void isHighorlow() 这意味着您有一个不返回任何内容的方法 当然,这样的方法不能像你所做的那样用在表达式的左边部分。

可能你想在你的班级写作

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

}

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

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

但是,如果要求只是返回true或false的标志,那么最好使用只读属性以这种方式更改类代码

public bool isHighorlow() 
{     
    get
    {
        return (number >=50 ? true : false);
    } 
    // No set, read only
} 

答案 4 :(得分:1)

IsHighOrLow应如下

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

           return true;
        }
        else
        {
            return false;
        }

    }

点击按钮

if (info.isHighorlow){
//say high
} else
{
// say low
}

答案 5 :(得分: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");
      }
    }