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

(免責事項:booleanC#ごとのダブルチェックと関連する定数)

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 に答える
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"); 

ただし、要件が true または false のフラグを返すことだけである場合は、このようにクラス コードを変更する読み取り専用プロパティを使用することをお勧めします。

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 に答える