我正在從VB轉換代碼到C#的過程從一箇舊的系統,使用基礎類的Web窗體繼承類。我希望爲我們新的外聯網建立一個新的登錄系統,它的功能就像舊系統,我可能錯過了一個步驟,但這裏是我嘗試轉換的區塊。並非所有的代碼路徑在Active Directory檢查返回一個值
public bool CheckAD()
{
string fncADStatus = "Failure";
string fncSuccess = "Success";
string fncFailure = "Failure";
fncADStatus = Convert.ToString(Session["SessionADStatus"]);
try
{
if (fncADStatus == fncSuccess)
{
return true;
}
}
catch
{
if (fncADStatus == fncFailure)
{
return false;
}
if (Session["SessionADStatus"] == null)
{
return false;
}
}
}
我得到以下錯誤「不是所有的代碼路徑返回一個值」,但我不明白爲什麼。
在你釣到的魚,你需要的IFS之外的回報,或者您需要一個else與回報。或者你可以把它放回捕獲物之外。你的方法必須返回一些東西,因爲它不是無效的,並且如果所有的代碼路徑都沒有結束,Visual Studio就不會讓它編譯。 –
如果'fncADStatus!= fncSuccess'會怎麼樣?如果try中的if塊的計算結果爲false,則該方法不會返回任何內容。 –