C#没有运行else语句错误或代码错误?
为了让我的问题更简单,我做了以下几点:当tryparse工作时,它会显示为真。当tryparse为false时,程序将挂起且不执行任何操作C#没有运行else语句错误或代码错误?,c#,if-statement,C#,If Statement,为了让我的问题更简单,我做了以下几点:当tryparse工作时,它会显示为真。当tryparse为false时,程序将挂起且不执行任何操作 string sal; sal = tbSalary.Text; float salary; //DateTime date; bool result; result = float.TryParse(sal, out salary); Mess
string sal;
sal = tbSalary.Text;
float salary;
//DateTime date;
bool result;
result = float.TryParse(sal, out salary);
MessageBox.Show(result.ToString());
条款
萨尔!=空的
及
tbStartDate.Text!=空的
很可能把你搞砸了。让自己相信C#工作的基本原理。注释掉除解析代码和MessageBox之外的所有内容。您不需要空检查,也不需要额外的字符串变量用于工资检查:
private void button1_Click(object sender, EventArgs e)
{
float salary;
DateTime date;
if (float.TryParse(tbSalary.Text, out salary))
{
if (DateTime.TryParse(tbStartDate.Text, out date))
{
// ... proper code to update your database but COMMENTED OUT ...
MessageBox.Show("Changes Saved");
}
else
{
MessageBox.Show("Date must be MM/DD/YY form");
}
}
else
{
MessageBox.Show("Salary must be a numeric value");
}
}
这是应该的。如果程序仍然挂起,那么其他地方的代码会导致问题,而您没有向我们展示。是的,众所周知,If/else在c#中不起作用。看起来它涉及一些上下文,例如您在项目中使用的其他代码。您使用的是什么环境?也许您使用的是VS2013的测试版,这可能是造成这种情况的原因。如果您单步执行代码,代码挂起在哪里?通过调试器运行代码时挂起哪一行?@Rotem:If/else在C#中不起作用,我还应该做什么?:))在我得到那行代码之前,它就这样做了,我添加了它,看看它是否能起到任何作用。我的C#有点生疏,但你确定这是测试空值的正确方法吗?你可能有一些三态逻辑。