0

功能 **

private void GetComboxItems(params int[] type) 
        {   
            try
            {
                /* DEPARTMENT CODE */
                if (type[0] == 1)
                {
                    cmbDept.Items.Clear();
                    using (SFCDataContext SFC = new SFCDataContext())
                    {
                        var Dept = (from i in SFC.Systems_SettingsDepartments
                                    orderby i.Department_ID
                                    select i);

                        foreach (var q in Dept)
                        {
                            cmbDept.Items.Add(q.Department_ID);
                        }

                        SFC.Connection.Close();
                    }                    
                }
                /* CORRECTIVE ACTION RECORD CODE */
                if (type[1] == 1)
                {
                    cmbCARNo.Items.Clear();
                    using (SFCDataContext SFC = new SFCDataContext())
                    {
                        var CarNo = (from i in SFC.Systems_CARLogSheets
                                     orderby i.CARDocNo
                                     where i.PostStatus == 0
                                     select new
                                     {
                                         Code = i.CARDocNo
                                     });
                        foreach (var w in CarNo)
                        {
                            cmbCARNo.Items.Add(w.Code);
                        }

                        SFC.Connection.Close();
                    }
                }
                /* MEASUREMENT CODE */
                if (type[2] == 1)
                {
                    cmbMeas.Items.Clear();
                    using (SFCDataContext SFC = new SFCDataContext())
                    {

                        var Measure = (from i in SFC.Systems_SettingsMeasurements
                                       orderby i.Measurement_ID
                                       where i.CategoryType == "Measurement"
                                       select new
                                       {
                                           DESC = i.Measurement
                                       });
                        foreach (var e in Measure)
                        {
                            cmbMeas.Items.Add(e.DESC);
                        }
                        SFC.Connection.Close();
                    }
                }
                /* SUB-MEASUREMENT CODE */
                if (type[3] == 1)
                {
                    cmbSubMeas.Items.Clear();
                    using (SFCDataContext SFC = new SFCDataContext())
                    {
                        var SubMeas = (from i in SFC.Systems_SettingsMeasurements
                                       orderby i.Measurement_ID
                                       where i.CategoryType == "Sub-Measurement"
                                       select new
                                       {
                                           DESC = i.Measurement
                                       });
                        foreach (var r in SubMeas)
                        {
                            cmbSubMeas.Items.Add(r.DESC);
                        }
                        SFC.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message.ToString()); }
        }

* 表格加载 **

private void frmSQMProductivityReports_Load(object sender, EventArgs e)
        {
            GetComboxItems(1, 0, 1, 0);
        }

为什么在这段代码中……我的第一个 if 语句是“True”,所以它执行 if 语句中的代码之后的内容,并且确实如此。现在第二个 if 语句是“False”,它跳过了里面的函数。但是现在第三个 if 语句是“真”,它应该和第一个一样,但是我已经检查了几次,它跳过了 if 语句中的函数,为什么会这样?我的代码有什么问题吗?我试着看一下,对我来说似乎没问题..

4

1 回答 1

1

根据您的输入,if满足条件的条件是第一个和第三个。请注意,如果抛出异常,可以“跳过”某些语句,因此在此处放置断点或打印日志可以帮助您更好地了解正在发生的事情。

旁注:

  1. 在这种情况下,使用params似乎是多余的(它主要在应该传递未知的#arguments 时使用),因为参数的数量是固定的。
  2. 使用booltype 而不是 int 作为标志
于 2013-11-15T00:38:30.860 回答