簡體   English   中英

在C#中滿足一個IF條件后立即停止執行方法

[英]Stop execution of a method as soon as one IF condition is met in c#

我有幾個if語句。 我想要的是,一旦滿足一個條件,我就應該擺脫這種方法。 我將使用if語句過濾datagridview或報表的數據。 在下面的代碼中,它不會執行此操作。 它似乎經歷了所有條件。 一旦找到滿足條件的程序,程序將執行該條件並繼續執行另一個if語句,並且如果發現它也滿足該條件,它也將被執行。 我認為這對您來說很基本。 我不記得或不知道該怎么做。

private void btnRoute_Click(object sender, EventArgs e)
    {
        if (cbWithRoute.Checked)
        {
            // StartSearch(txtRoute.SelectedValue.ToString());
            MessageBox.Show(@"route");
        }
        if (cbWithRoute.Checked && cbWithWholeSeller.Checked)
        {
            //StartSearch(txtRoute.SelectedValue.ToString(), txtWholeSeller.SelectedValue.ToString());
            MessageBox.Show(@"route wholeseller");
        }
        if (cbWithRoute.Checked && cbWithCustomer.Checked)
        {
            MessageBox.Show(@"route customer");
        } 
        if (cbWithRoute.Checked && cbWithWholeSeller.Checked && cbWithDate.Checked)
        {
            //StartSearch(txtRoute.SelectedValue.ToString(),
            //    txtWholeSeller.SelectedValue.ToString(), Convert.ToDateTime(txtFromDate.Text).ToShortDateString(),
            //    Convert.ToDateTime(txtToDate.Text).ToShortDateString());
            MessageBox.Show(@"route wholseller date");
        }
        if (cbWithRoute.Checked && cbWithCustomer.Checked && cbWithDate.Checked)
        {
            MessageBox.Show(@"route date customer");
        }
        if (cbWithRoute.Checked && cbWithWholeSeller.Checked && cbWithDate.Checked && cbWithCustomer.Checked)
        {
            //StartSearch(txtRoute.SelectedValue.ToString(),
            //    txtWholeSeller.SelectedValue.ToString(), Convert.ToDateTime(txtFromDate.Text).ToShortDateString(),
            //    Convert.ToDateTime(txtToDate.Text).ToShortDateString(), txtCustomer.SelectedValue.ToString());
            MessageBox.Show(@"route wholeseller date customer");
        }
        //else
        //{
        //    MessageBox.Show(@"Check criteria to search.");
        //}

    }

我注釋了真實的代碼,並用消息框替換了它,以向我顯示選中了哪些復選框。 謝謝。

因為你的方法retrun類型是voidreturn至年底所有,如果像下面的條件;

if (cbWithRoute.Checked)
{
    // StartSearch(txtRoute.SelectedValue.ToString());
    MessageBox.Show(@"route");
    return;
}
if (cbWithRoute.Checked && cbWithWholeSeller.Checked)
{
    //StartSearch(txtRoute.SelectedValue.ToString(), txtWholeSeller.SelectedValue.ToString());
    MessageBox.Show(@"route wholeseller");
    return;
}

等等....

在您希望它停止執行的任何地方,放置以下行

return;

我不會假設要了解檢查背后的業務邏輯,但是您可能還想閱讀else語句, else if

否則,如果您需要此概念。 像下面。

if (cbWithRoute.Checked)
    {
        // StartSearch(txtRoute.SelectedValue.ToString());
        MessageBox.Show(@"route");
    }
    else if (cbWithRoute.Checked && cbWithWholeSeller.Checked)
    {
        //StartSearch(txtRoute.SelectedValue.ToString(), txtWholeSeller.SelectedValue.ToString());
        MessageBox.Show(@"route wholeseller");
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM