-1

作成した小さなコードに問題があります。コードについては、小さなチェックを行う必要があります。の値が_mmdTextBox1999 よりも大きい場合、MessageBx.Show("Value to high"). 値が 0 より小さい場合は、MessageBox.Show("Value to low").

これは私がこれまでに作ったものです:

private void _mmdButton_Click(object sender, EventArgs e)
{
    var value = _mmdTextBox.Text;
    if (value > 1999 && value < 0)
    {
         MessageBox.Show("Value is to high");
    }
    else
    {
       // action
    }
}

これは、上記のコードのように実行すると発生するエラーです。

エラー 1 演算子 '>' は型 'string' および 'int' のオペランドには適用できません

4

8 に答える 8

11
int value;
if(Int32.TryParse(_mmdTextBox.Text, out value)
{
    if (value > 1999)
    {
        MessageBox.Show("Value is too high");
    }
    else if(value < 0)
    {
        MessageBox.Show("Value is too low");
    }
    else
    {
        // action
    }
}
else
{
    // not a number
}
于 2013-09-26T08:23:10.843 に答える
0

C# は厳密に型指定された言語であり、2 つの値を比較する場合は . それらは同じタイプでなければなりません。そのため、テキスト ボックスのテキストを int に変換する必要があります。また、テキスト ボットからの値が int であることを確認するための検証も必要です。

私はこれがあなたのために完全に役立つと思った

于 2013-09-26T08:28:15.627 に答える
0

ステートメントは次のifように変更できます。

var value = Convert.ToInt32(_mmdTextBox.Text);  //Convert to int in order to compare against an int

if (value > 1999)
{
     MessageBox.Show("Value is to high");
}
else if (value < 0)
{
     MessageBox.Show("Value is to low");
}
else
{
    //Action
}

valueas タイプstringと type を比較していintます。

int.TryParse()intユーザーは何でも入力できるため、変換にはより良いオプションです。(Erno De Weerdの回答のように)

于 2013-09-26T08:22:50.060 に答える
-1

あなたの問題は、その値が数値ではなく文字列であることです。Parse または TryParse を使用して解決できます。

使用する場合は、MSDNの次の.TryParse()のようにします。

int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
    if (number > 1999 || number < 0)
    {
       MessageBox.Show("Value is invalid");
    }
    else
    {
       // action
    }
}
else
{
   //Show that the input is not a numeric value
}
于 2013-09-26T08:27:46.397 に答える
-1

if条件の代わりに試してみてください

if (Convert.ToInt32(value) > 1999 && !Convert.ToInt32(value)< 0)
于 2013-09-26T08:28:20.183 に答える
-1

タイプの定数と比較し_mmdTextBox.Textています! それは無理だ!前者を次のように変換する必要があります。stringintint

   int value;
   if(!int.TryParse(_mmdTextBox.Text, out value)) 
   {
       MessageBox.Show("Bad integer value in textbox");
       return;
   }
于 2013-09-26T08:23:32.860 に答える
-1

> 1999 AND < 0 である可能性はありますか?

TryParse は変換に適しているかもしれませんが、これはうまくいくはずです:

private void _mmdButton_Click(object sender, EventArgs e)
        {
            var value = Convert.ToInt32(_mmdTextBox.Text);

            if (value > 1999)
            {
                MessageBox.Show("Value is too high");
            }
            else if (value < 0)
            {
                MessageBox.Show("Value is too low");
            }
            else
            {
                MessageBox.Show("Value is ok");
            }
        }
于 2013-09-26T08:25:41.350 に答える