2015-10-19 211 views
0

我在這裏需要一些幫助,我目前做一個遊戲,但我得到了什麼地方卡住了。所以,我要的是,如果一個標籤的文字是高於其他標籤的文字,然後會有些事情發生,我輸入If Label26.Text > Label24.Text Then Label33.Visible = True這似乎不工作,請,我需要一些幫助在這裏,謝謝。是的,標籤文字是NUMBERS。將一個字符串轉換成INT

+4

'Int32.Parse(Label26.Text)'如果它是一個整數或'Decimal.Parse' /'Double.Parse'如果它是一個十進制數。 –

+1

標籤值是否來自某處?也許你應該檢查來源(應該已經是一個數字),而不是直接檢查標籤。 –

+1

因爲_you_不是計算機而是人類,所以應該考慮使用有意義的,可讀的變量名稱而不是'Label33'。 –

回答

2

標籤的Text屬性是string。至於電腦去,你可以(使用比較運營商如>不會回到你expecting結果),因爲他們只是一個字符序列用繩子不是做數學題。

即使串只包含一個數字,計算機仍然把它看作一個字符序列,而不是一個號碼("5"是文字與字符 5在它的字符串,而5整數可用於數學表達式)。

由於一些提到的其他評論者,你需要將Text財產強制轉換爲整數或雙(或其他一些數字數據類型)。爲此,您需要使用Int32.Parse將字符串更改爲整數。

If Int32.Parse(Label26.Text) > Int32.Parse(Label24.Text) Then Label33.Visible = True

+1

謝謝,你真的解釋吧:) – Alexander

+1

雖然你的看法是正確的,你的語句字符串不能與比較運算符一起使用完全不正確。 '昏暗S1作爲字符串= 「F」 昏暗S2作爲字符串= 「monkey123」 如果S1> S2然後美孚()'正常工作。 –

+1

我的錯誤@MattWilko,我已經根據您的更正重新措辭了答案。 –

0

可以使用int.tryParse來檢查變量的內容是一個數字或沒有。所述的TryParse的輸出是一個布爾,見下面的例子:

int num1 = 0; 
bool num1_ = false; 

num1_ = int.TryParse(txt1.Text.ToString(), out num1); 
if (num1_) 
{ 
    // Is a number/integer 
    //Do something 
} 
else 
{ 
    //Is a string 
    //Do something else 
}