我需要看看路徑是否可用,但只在運行時。因此,如果我的程序檢查到文件不存在,它會將invalidPath bool設置爲「true」,以便它不會再次跳入「File.Exists ...」查詢中,只要程序運行即可。C# - 避免代碼重複:嵌套如果語句
問題是:如果我像下面列出的那樣做,我認爲沒有可能避免代碼冗餘。我需要顯示一條消息來通知用戶關於丟失的文件,但對兩個「if」情況使用相同的代碼行並不是很優雅。
private bool invalidPath = false
if (!invalidPath)
{
if (File.Exists(temp))
{
//do code
}
else
{
Show.MessageBox("no file found")
invalidPath = true
}
}
else
{
Show.Messagebox("no file found") /*<---thats redundant*/
}
我希望有人能給我一個主意。
如果我結合這兩個語句,程序/方法將搜索該文件每次當它被稱爲(通過錯誤和正確路徑),而這正是我試圖阻止,因爲一直搜索文件會花費不必要的運行時間。 – Klunky
@Klunky實際上,如果第一個條件失敗,甚至不會評估以下條件。這被稱爲「短路」。你可以在這裏閱讀更多:https://msdn.microsoft.com/en-us/library/2a723cdk(v=vs.71).aspx – omerkarj
哦,我不知道(我沒有那麼多的經驗在C# /。淨)。這非常有用。 它減少了一個if語句並且不需要其他變量。這對我來說很理想,謝謝! – Klunky