c#节目问题

时间:2010-09-20 13:31:36

标签: c#

如果文本框有1位数或大于31的数字,程序将崩溃。我应该怎么做呢?

到目前为止,我有这段代码:

if (dd.Text.Length <= 1 || dd.Text > 31)
    return; 
显然,那是错的...... :(

3 个答案:

答案 0 :(得分:6)

dd.Text > 31

上面的代码是将字符串与int进行比较。你应该试试:

int val = 0;
if (Int32.TryParse(dd.Text, out val))
{
   if (val > 31) return;
}

答案 1 :(得分:3)

dd.Text > 31

这条线不起作用。尝试:

int.parse(dd.Text) > 31

如果输入非数字字符,它将不会运行,您可能需要先清理。

答案 2 :(得分:-1)

很明显,你没有想到你在做什么。

首先,您必须了解C#中可用的基本类型以及它们的含义。

现在您应该阅读有关String和Integer的内容。您将理解为什么该代码不起作用。

如果你想验证,文本框中的文本值是两个数字之间,首先它需要是数字。所以你需要施展它......

然后你可以对它进行操作并进行比较。

String myText = textBox.Text;
int myValue  = -1;

if(Int32.tryPart(myText,myValue))    
 if(myValue > 31)
   return;