如果文本框有1位数字或大于31的数字,程序将崩溃。我应该如何阻止?c#程序问题
到目前为止,我有这样的代码:
if (dd.Text.Length <= 1 || dd.Text > 31)
return;
显然,这是错误的... :(
如果文本框有1位数字或大于31的数字,程序将崩溃。我应该如何阻止?c#程序问题
到目前为止,我有这样的代码:
if (dd.Text.Length <= 1 || dd.Text > 31)
return;
显然,这是错误的... :(
dd.Text > 31
上面的代码将一个字符串与一个int进行比较。你应该尝试:
int val = 0;
if (Int32.TryParse(dd.Text, out val))
{
if (val > 31) return;
}
顺便说一句,你不能初始化'val'到'0' - 它会通过输出接受方法 – abatishchev 2010-09-20 13:45:51
dd.Text > 31
此行不会工作尝试:
int.parse(dd.Text) > 31
而且如果输入的是非数字字符,它将不会运行,您可能需要先进行消毒。
什么是显而易见的,你不会想到你在做什么。
首先,您必须了解C#中可用的基本类型以及它们的重要性。
现在你应该阅读关于字符串和整数。你会明白为什么代码不起作用。
如果您想验证一个文本框是否在两个数字之间,首先它需要是数字。所以你需要把它...
然后你可以对它进行操作和比较。
String myText = textBox.Text;
int myValue = -1;
if(Int32.tryPart(myText,myValue))
if(myValue > 31)
return;
自动完成。你为什么用首字母顺序写出单词You中的第一个字母?你不知道现在是怎么做的? :P – Younes 2010-09-20 13:59:02
我的母语拼写规则的习惯。 – 2010-09-20 14:03:04
你到底在做什么?你是在分析一个月的哪一天?在这种情况下,你不能检查31,因为不是所有的月份都有31天。同样比较一个字符串(我猜文本是一个字符串)的数字31不会像你期望的那样工作。 – 2010-09-20 13:33:29
什么是使用您的文本框的代码?你在if语句的第二部分中缺少一个“.Length”。 – 2010-09-20 13:33:30