我有2个texboxes textbox71,我输入出生日期,程序计算我的年龄并在textbox72中显示,问题是当我没有在textbox71中输入内容时程序给我一个错误“字符串没有被认为是有效的日期时间“并关闭,我想从程序中得到的是当我没有在dateofbirth文本框中输入内容向我显示输入内容的消息时,所以我试图这样做但是它在这里没有用到我的代码:
if (!string.IsNullOrEmpty(textBox71.Text))
{
MessageBox.Show("please enter date of birth");
}
else
{
DateTime drid2 = Convert.ToDateTime(textBox71.Text);
DateTime drid3 = DateTime.Now;
int yy1 = Math.Abs(drid3.Year - drid2.Year);
textBox72.Text = yy1.ToString();
}
答案 0 :(得分:1)
尝试修改
if (string.IsNullOrEmpty(textBox71.Text))
{
MessageBox.Show("please enter date of birth");
}
else
{
DateTime drid2 = Convert.ToDateTime(textBox71.Text);
DateTime drid3 = DateTime.Now;
int yy1 = Math.Abs(drid3.Year - drid2.Year);
textBox72.Text = yy1.ToString();
}
!string.IsNullOrEmpty如果值不为空则返回true,如果值为空则返回false。你试图反其道而行之。
答案 1 :(得分:1)
如果string.IsNullOrEmpty(textBox71.Text)
<{1}} null 或为空,则此true
将为textBox71.Text
。因此,!string.IsNullOrEmpty(textBox71.Text)
将为false
,如果 textBox71.Text
为 null 或为空,则!
{1}}是否定运算符。
因此当textBox71.Text
为 null 或为空时,else
语句中的代码将被执行,何时会到达这条线
DateTime drid2 = Convert.ToDateTime(textBox71.Text);
您将收到错误消息,因为textBox71.Text
将是 null 或为空。
因此,删除否定运算符!
,您的逻辑将是正确的,您的代码将按预期执行。
有关逻辑否定运算符的更多信息,请查看here。
我建议您使用方法String.IsNullOrWhiteSpace
,因为它更通用:
指示指定的字符串是空,空还是仅包含空格字符。
有关此方法的详细信息,请查看here。