Мне нужно посмотреть, доступен ли путь, но только во время выполнения. Поэтому, если моя программа проверила, что файл не существует, он устанавливает для invalidPath bool значение «true», чтобы он не пересказывал запрос «File.Exists ...» еще раз, как только программа запускается.C# - Избегание повторения кода: Вложенный, если Statement
Проблема: если я делаю это так, как показано ниже, я не вижу возможности избежать избыточности кода. Мне нужно показать сообщение, чтобы информировать пользователя о недостающем файле, но не очень элегантно использовать одну и ту же строку кода для обоих случаев «если».
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