C#没有运行else语句错误或代码错误?

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

为了让我的问题更简单,我做了以下几点:当tryparse工作时,它会显示为真。当tryparse为false时,程序将挂起且不执行任何操作

        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#有点生疏,但你确定这是测试空值的正确方法吗?你可能有一些三态逻辑。