簡體   English   中英

枚舉返回后無法訪問的代碼

[英]Unreachable Code after enum return

嗨,我有一個emun,它將通過if語句進行測試。

public enum Test_Criteria
    {
        Pass,
        Warning,
        Fail
    }

運行if語句后

if (driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"))
        {

            return Test_Criteria.Pass;
        }

        else
        {
            return Test_Criteria.Fail;  
        }

我正在獲取無法訪問的代碼以直接在此處進行下一個測試

driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");

讓程序在返回后繼續執行代碼的最明智的方法是什么。 謝謝

您同時在ifelse子句中返回,這就是為什么您的代碼不會到達if語句之后的下一行的原因。 在任何情況下,如果檢查失敗或失敗,您的代碼將從該方法返回。 這就是為什么您得到錯誤/警告。

您的問題是您要從條件的兩個分支中返回。 如果要執行其他代碼,則不應返回任何一個。

為了測試多個條件,您可以嘗試執行以下操作:(我假設失敗的條件會立即停止測試)

var result = Test_Criteria.Pass;
if ( */fail condition*/ )
{
    return Test_Criteria.Fail;  
}

if ( */another fail condition*/ )
{
    return Test_Criteria.Fail;  
}

if( */warning condition*/ )
{
    result = Test_Criteria.Warning;
}
else if( */another warning condition*/ )
{
    result = Test_Criteria.Warning;
}

return result;

您有兩個執行路徑,每個執行路徑都從函數返回,因此,在if-else塊之后確實不可能繼續執行。

嘗試這個:

var urlContains = driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"));
var result = urlContains ? Test_Critera.Pass : Test_Criteria.Fail;

driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");
//the rest of your code

return result;

暫無
暫無

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

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