powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два выражения в if
4 сообщений из 4, страница 1 из 1
Два выражения в if
    #32452805
Alexei Petrakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я в условии if укажу два выражения (объединённые &&), гарантируется ли, что первое из них будет выполнено раньше второго? И будет ли точно НЕ выполнено второе, если первое FALSE?

Вот пример:
Код: plaintext
1.
2.
3.
4.
if (Exp1 && Exp2)
{
  //some statement
}

Мне нужно, чтобы Exp1 проверилось точно ДО проверки Exp2, и если Exp1 == false, то чтобы Exp2 вообще не проверялось. То есть, фактически, нужно вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (Exp1)
{
  if (Exp2)
  {
    //some statement
  }
}

Очевидно, что первый вариант короче. А вот эквивалентны ли они?

Пример, для чего это нужно: Exp1 - проверка наличия определённого поля в таблице, а Exp2 - проверка содержимого этого поля; если начать проверять значение поля, а самого поля нет, то произойдёт ошибка; поэтому нужно быть уверенным, что Exp1 проверится раньше, чем Exp2.

Спасибо!
...
Рейтинг: 0 / 0
Два выражения в if
    #32452818
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эквивалентны
...
Рейтинг: 0 / 0
Два выражения в if
    #32452936
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое поведение называется short-circuit evaluation, и в C# введено по умолчанию.
А вот в VB.NET чтобы добиться того же эффекта надо вместо and писать AndAlso.
...
Рейтинг: 0 / 0
Два выражения в if
    #32458073
if
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if
Гость
А вообще, для проверки ситуации и убедиться лично,
можно написать две функции, возвращающие логический результат
1я = истину
2я = ложь
в теле каждой поместить вывод сообщения на экран. о том ,какая функция
работает
===
вот с ними и поиграться в условии для if-а.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два выражения в if
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]