Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите упростить булеву логику. / 25 сообщений из 37, страница 1 из 2
14.08.2014, 17:18
    #38720599
Ростигай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Привет.

Можно ли написать ниже-приведенный запрос более коротко ?

Код: c#
1.
2.
3.
      object ob1, ob2;
      if ( ((ob1 == null) && (ob2 != null)) || ((ob1 != null) && (ob2 == null)) )
          throw new ApplicationException ("ля ля")



Логика проверки простая - оба объекта должны быть либо NULL либо НЕ NULL. Но только вместе.
Если один так, а другой так - ошибка, сгенерить исключение.
...
Рейтинг: 0 / 0
14.08.2014, 17:28
    #38720614
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Код: c#
1.
2.
if ((ob1 == null) != (ob2 == null))
    throw new ApplicationException ("ля ля")
...
Рейтинг: 0 / 0
14.08.2014, 17:32
    #38720619
Ростигай
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Яростный Меч,

Гениально и просто :)
Спасибо.
...
Рейтинг: 0 / 0
14.08.2014, 18:15
    #38720654
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Код: c#
1.
2.
if (!(ob1 == null ^ ob2 == null))
    throw new ApplicationException ("ля ля")
...
Рейтинг: 0 / 0
14.08.2014, 18:23
    #38720662
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Тьфу... "Если один так, а другой так - ошибка, сгенерить исключение".

Код: c#
1.
2.
3.
4.
if (ob1 == null ^ ob2 == null)
{
    throw new ApplicationException ("ля ля")
}
...
Рейтинг: 0 / 0
14.08.2014, 18:37
    #38720680
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
skyANAТьфу... "Если один так, а другой так - ошибка, сгенерить исключение".

Код: c#
1.
2.
3.
4.
if (ob1 == null ^ ob2 == null)
{
    throw new ApplicationException ("ля ля")
}


вот имхо. чем в if все тупее и проще,тем легче понимать.
...
Рейтинг: 0 / 0
14.08.2014, 18:40
    #38720687
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
netivanвот имхо. чем в if все тупее и проще,тем легче понимать.+100
потом читаешь свой код через полгода и думаешь, блин, что я тут имел ввиду.
ну или камент писать - тогда получится еще длиннее ))
...
Рейтинг: 0 / 0
14.08.2014, 18:42
    #38720691
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
netivanskyANAТьфу... "Если один так, а другой так - ошибка, сгенерить исключение".

Код: c#
1.
2.
3.
4.
if (ob1 == null ^ ob2 == null)
{
    throw new ApplicationException ("ля ля")
}


вот имхо. чем в if все тупее и проще,тем легче понимать.Разве оператор XOR труден для понимания?
...
Рейтинг: 0 / 0
14.08.2014, 18:43
    #38720692
netivan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
skyANAnetivanпропущено...

вот имхо. чем в if все тупее и проще,тем легче понимать.Разве оператор XOR труден для понимания?
нет. но скажем так я использовал его пару раз. Предпочитаю & or. Видимо я плохой программист.
...
Рейтинг: 0 / 0
14.08.2014, 18:46
    #38720694
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
netivanskyANAпропущено...
Разве оператор XOR труден для понимания?
нет. но...То есть не труден, но и не лёгок? Информатику в школе прогуливал?
...
Рейтинг: 0 / 0
14.08.2014, 19:42
    #38720744
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
skyANAnetivanпропущено...

нет. но...То есть не труден, но и не лёгок? Информатику в школе прогуливал?

Скажу прямо - в логических условиях c# вижу его в первый раз.
...
Рейтинг: 0 / 0
14.08.2014, 21:11
    #38720770
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Ростигай
Код: c#
1.
2.
3.
      object ob1, ob2;
      if ( ((ob1 == null) && (ob2 != null)) || ((ob1 != null) && (ob2 == null)) )
          throw new ApplicationException ("ля ля")



Самый внятный и правильный код. Ничего сокращать не надо. Легко линейно читается, легко добавляются к указанному коду новые и более сложные конструкции. Оставить как есть и не морочить себе голову.
...
Рейтинг: 0 / 0
14.08.2014, 21:20
    #38720772
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
PallarisskyANAпропущено...
То есть не труден, но и не лёгок? Информатику в школе прогуливал?

Скажу прямо - в логических условиях c# вижу его в первый раз.в логических условиях он по сути то же самое, что и "не равно".
...
Рейтинг: 0 / 0
14.08.2014, 23:42
    #38720811
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Яростный МечPallarisпропущено...


Скажу прямо - в логических условиях c# вижу его в первый раз.в логических условиях он по сути то же самое, что и "не равно".

Само собой, только видишь такое - и бровь ползет вверх.
...
Рейтинг: 0 / 0
15.08.2014, 00:48
    #38720832
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
МСУРостигай
Код: c#
1.
2.
3.
      object ob1, ob2;
      if ( ((ob1 == null) && (ob2 != null)) || ((ob1 != null) && (ob2 == null)) )
          throw new ApplicationException ("ля ля")




Самый внятный и правильный код. Ничего сокращать не надо. Легко линейно читается, легко добавляются к указанному коду новые и более сложные конструкции. Оставить как есть и не морочить себе голову.

Согласен на все 100. Чем понятней и проще, тем лучше! Болезнь, выраженная в стремлении зашифровать логику в одну строку с помощью хитрожопых конструкций, проходит вместе со взрослением.
...
Рейтинг: 0 / 0
15.08.2014, 05:52
    #38720864
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
hVosttСогласен на все 100. Чем понятней и проще, тем лучше!
Нюанс в том, что критерии понятности и простоты у каждого свои. Для меня вот лично в данной ситации самый простой и понятный вариант - с XOR'ом.
...
Рейтинг: 0 / 0
15.08.2014, 08:04
    #38720890
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
PallarisskyANAпропущено...
То есть не труден, но и не лёгок? Информатику в школе прогуливал?

Скажу прямо - в логических условиях c# вижу его в первый раз.Ну все бывает в первый раз :)

XOR (исключающее ИЛИ, строгая дизъюнкция) - это булева функция, которой в C# соответствует оператор ^. Грех не воспользоваться по назначению.
...
Рейтинг: 0 / 0
15.08.2014, 08:15
    #38720893
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Забавно то, что в первом посте мы видим не что иное, как запись XOR в виде ДНФ (дизъюнктивная нормальная форма). А вы тут делаете удивленное лицо :)
...
Рейтинг: 0 / 0
15.08.2014, 08:43
    #38720907
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
skyANAЗабавно то, что в первом посте мы видим не что иное, как запись XOR в виде ДНФ (дизъюнктивная нормальная форма). А вы тут делаете удивленное лицо :)

Проблема надраконенности мозга на узнавание. Решая каждый день тысячи задач "и","или","не" в повседневной жизни, я не могу слету понять, что происходит в случае с XOR, надо задуматься, вспомнить. Тогда как конструкция тса проста в понимании.
...
Рейтинг: 0 / 0
15.08.2014, 09:13
    #38720919
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
Pallarisчто происходит в случае с XOR, надо задуматься, вспомнить
XOR по-русски - это всего навсего ЛИБО
...
Рейтинг: 0 / 0
15.08.2014, 09:48
    #38720944
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
offskyANA, конкуренты ?
...
Рейтинг: 0 / 0
15.08.2014, 10:48
    #38720984
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
PallarisskyANAЗабавно то, что в первом посте мы видим не что иное, как запись XOR в виде ДНФ (дизъюнктивная нормальная форма). А вы тут делаете удивленное лицо :)

Проблема надраконенности мозга на узнавание. Решая каждый день тысячи задач "и","или","не" в повседневной жизни, я не могу слету понять, что происходит в случае с XOR, надо задуматься, вспомнить. Тогда как конструкция тса проста в понимании.КО: да, ДНФ проще для понимания, для того она и существует.

Только вот ТС просит обратное, а Вы его что, отговариваете что-ли?

P.S.: а про надроконенность мозга... Ну просто у нас в школе преподавали логику и информатику, а в институте математическую логику. Видимо не всё у меня из головы вылетело
...
Рейтинг: 0 / 0
15.08.2014, 10:52
    #38720989
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
МСУ
offskyANA, конкуренты ?
Нет. Система на внутренний рынок ориентирована, а не на выездной туризм. Но это маячок, что начали наконец внутренний рынок осваивать.
...
Рейтинг: 0 / 0
15.08.2014, 10:52
    #38720992
sphinx_mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
skyANAP.S.: а про надроконенность мозга... Ну просто у нас в школе преподавали логику и информатику, а в институте математическую логику. Видимо не всё у меня из головы вылетело Карты Карно?
...
Рейтинг: 0 / 0
15.08.2014, 10:55
    #38720998
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите упростить булеву логику.
sphinx_mvskyANAP.S.: а про надроконенность мозга... Ну просто у нас в школе преподавали логику и информатику, а в институте математическую логику. Видимо не всё у меня из головы вылетело Карты Карно?В школе проходили.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите упростить булеву логику. / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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