2014-01-23 104 views
-3

我刚刚开始与编码,我正在寻找一个简单的高/低游戏。 我有一个随机起始号码,并点击'较高'或'较低'按钮时设置一个新号码。我想说的是...从字符串转换为int?

如果用户点击更高的按钮:如果NewNumberLbl大于round1numberlbl。然后做点什么。事情是即时得到不能够说

If {NewNumberLbl.Text > Round1NumberLbl.Text} 
{} 

,因为我得到了错误的问题:

Error 1 Operator '>' cannot be applied to operands of type 'string' and 'string'

让我怎么去修复这一点,并使它成为一个int类型?

Ps我试图创建新的int,将它们与随机数字方法中的整数相关联,然后调用它们?

HELP!

public Round1() 
{ 
    InitializeComponent(); 
    RandomNumber(0, 12); 
    NewNumberLbl.Visible = true; 
} 

public void RandomNumber(int min, int max) 
{ 
    int num = new Random().Next(min, max); 
    Round1NumberLbl.Text = num.ToString(); 
} 

public void RandomNumber2(int min, int max) 
{ 
    int num2 = new Random().Next(min, max); 
    NewNumberLbl.Text = num2.ToString(); 
} 

private void Round1HBtn_Click(object sender, EventArgs e) 
{ 
    //RandomNumber2(0, 12); 
    //if (newNumber >= originalNumber) 
    //{ 

    //} 
} 
+8

您是否认真告诉我您无法在Google(或StackOverflow)上查看此内容? –

+1

很少提示:使用数字数据类型(如int)来使用运算符(如< and >)比较值。另外,让你的方法返回一个int而不是void并使用该结果。另外,你的两种方法几乎完全相同。尝试只使用一个。 – NoChance

回答

3

转换字符串到INT:

int i; 
if (int.TryParse("1234", out i){ 
    //ok 
} 
+1

我喜欢使用TryParse,因为它在字符串包含字符而非数字的情况下添加了一些防御。我在我的回答中发布了一个很好的MSDN参考,OP应该阅读和摘要。 +1为第一个答案peer。 – websch01ar

2

您可以使用:

Convert.ToInt32(myString); 

或:

int myOut; 
int.TryParse(myString, out myOut); 

第一个将抛出一个异常,如果你尝试的东西转化那不是解析的中一个int。

第二个将导致0,如果转换不成功

0

int.Parse(NewNumberLbl.Text);

但是你应该确保标签有一个数字而不是其他的字符。

0
string text = "500"; 
int num = int.Parse(text); 

这应该工作。您可以使用TryParse来检查“文本”是否有效