2015-10-19 151 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 
}