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ステートメント内のコードに続くことを行います。2番目のifステートメントは「False」になり、その中の関数をスキップします。しかし、3 番目の if ステートメントは「True」です。これは 1 番目と同じようにする必要がありますが、数回確認したため、if ステートメント内の関数をスキップするのはなぜですか? 私のコードに何か問題がありますか?私はそれを見てみました..

4

1 に答える 1

1

あなたの入力によるifと、基準を満たす条件は最初と 3 番目です。例外がスローされた場合、一部のステートメントは「スキップ」できることに注意してください。そのため、そこにブレークポイントを配置するか、ログを印刷すると、何が起こっているのかをよりよく理解するのに役立ちます。

補足:

  1. この場合、引数の数が固定されているため、 の使用はparams冗長なようです (未知の #arguments を渡す必要がある場合に主に使用されます)。
  2. boolフラグには int ではなく type を使用する
于 2013-11-15T00:38:30.860 に答える