Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два выражения в if / 4 сообщений из 4, страница 1 из 1
23.03.2004, 12:11
    #32452805
Alexei Petrakov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два выражения в if
Если я в условии 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
23.03.2004, 12:18
    #32452818
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два выражения в if
эквивалентны
...
Рейтинг: 0 / 0
23.03.2004, 13:10
    #32452936
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два выражения в if
Такое поведение называется short-circuit evaluation, и в C# введено по умолчанию.
А вот в VB.NET чтобы добиться того же эффекта надо вместо and писать AndAlso.
...
Рейтинг: 0 / 0
26.03.2004, 10:58
    #32458073
if
if
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два выражения в if
А вообще, для проверки ситуации и убедиться лично,
можно написать две функции, возвращающие логический результат
1я = истину
2я = ложь
в теле каждой поместить вывод сообщения на экран. о том ,какая функция
работает
===
вот с ними и поиграться в условии для if-а.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два выражения в if / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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