我有這樣的代碼片段在這裏:如果else的其中一個布爾參數爲空,爲什麼else語句不會被執行?
public void ReDrawParallelLines(string lineName, string viewType)
{
var referenceLineOne = GetLineParams(viewType + ReferenceEnum.One.ToString() + linename);
var referenceLineTwo = GetLineParams(viewType + ReferenceEnum.Two.ToString() + linename);
if (lineName == referenceLineOne.lineParams.lineName)
{
//Do certain action with referencelineone
}
else if (lineName == referenceLineTwo.lineParams.lineName)
{
//Do same action but with referencelinetwo
}
}
我注意到,如果referenceLineOne爲空,但我有referenceLineTwo,else語句永遠不會被執行。我不知道爲什麼?它不工作,如果布爾失敗,如果繼續其他,它應該通過其他。它只是跳過內部if語句和其他條件,因爲referenceLineOne爲null。爲什麼以及如何糾正此檢查?
基本上,我傳遞一個線路名稱,我想檢查它是否等於我從GetLineParams函數獲得的兩條線之一。
如果'referenceLineOne'是'null',那麼你的'if'語句中的代碼將要拋出一個'NullReferenceException'。你有沒有一個空的catch語句在某個地方只是在吃它? –
hmm好吧,referenceLineOne將爲null的唯一原因是如果該線尚未繪製,但我首先繪製referenceLineTwo。我想我需要一個更好的方法來檢查lineName我傳遞是否等於一個特定的lineName,以便我可以運行適當的條件。 –