2017-04-12 95 views
-6

我試圖編寫一個If語句,點擊button1時將顯示在label1中,textbox1爲25或上面「客戶可接收£5折購買」,將示出了當50或以上「客戶可接收£10關閉購買」運算符'<='不能應用於類型'字符串'和'int'(C#)的操作數

我的代碼是如下:使用系統;

using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace If_Statement 
{ 

    public partial class Form1 : Form 
    { 
     int numbera = 25; 
     int numberb = 50; 
     public Form1() 
     { 

     } 

     private void button1_Click(object sender, EventArgs e) 

     { 
      if (textBox1.Text <= numbera) 
      { 
       label1.Text = ("Customer can receive £5 off purchase"); 
      } 
      if (textBox1.Text <= numberb) 
      { 
       label1.Text = ("Customer can receive £10 off purchase"); 
      } 

     } 

     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void label1_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

想知道我要去哪裏錯,如果我可以解釋爲什麼以及如何解決它。

在此先感謝。

+1

你需要將其轉換爲int第一,像這樣 - >如果(int.Parse(textBox1.Text)<= numbera){...} –

+1

解析您的輸入...快速谷歌搜索將有**完全告訴你**問題是什麼...... –

+1

如果第一個「if」陳述是真的,那麼第二個陳述永遠也是真實的。你需要「其他如果」,而不是第二個「如果」。 – JBrooks

回答

1

你需要比較之前將進入到一個數量值轉換:當用戶輸入了一些諸如「ABC」

private void button1_Click(object sender, EventArgs e) 
    { 
     var number = Double.Parse(textBox1.Text); 
     if (number <= numbera) 
     { 
      label1.Text = ("Customer can receive £5 off purchase"); 
     } 
     else if (number <= numberb) 
     { 
      label1.Text = ("Customer can receive £10 off purchase"); 
     } 
    } 

你應該注意到,代碼將打破,因爲這不能被解析爲號碼,因此您需要使用更安全的方式來驗證用戶輸入,如Double.TryParse

相關問題