[英]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("#####");
讓程序在返回后繼續執行代碼的最明智的方法是什么。 謝謝
您同時在if
和else
子句中返回,這就是為什么您的代碼不會到達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.