powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Условный оператор ?:
52 сообщений из 52, показаны все 3 страниц
Условный оператор ?:
    #38391599
Andry_Палыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем хорошего вечера!
Подскажите, мудрые форумчане, в условном операторе "? :" при вот такой записи:
Код: c#
1.
string _value = ValueGet(params) == "" ? "800" : ValueGet(params);


некая функция ValueGet будет вызвана дважды? По мне так да, дважды.
Может есть более элегатное решение, что бы не было двойного вызова, кроме как использовать переменную для хранения возвращаемого функцией результата?
Вот такое писать уже устал:
Код: c#
1.
2.
string _result = ValueGet(params);
string _value = _result == "" ? "800" : _result;
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391701
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, но нужно сделать, чтобы ValueGet возвращала не "", а null. Тогда можно записать так:

Код: c#
1.
string value = ValueGet(params) ?? "800";
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391764
Andry_Палыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, спасибо за подсказку.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391781
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andry_Палыч, добывить в метод ValueGet второй параметр: string defaultValue.
Код: c#
1.
string value = ValueGet(params, "800");
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391833
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот оператор называется не условным, а тернарным.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391849
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭтот оператор называется не условным, а тернарным.
Тернарный оператор априори условен.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391866
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тигр априори семейства кошачьих.

Но он называется тигр, а не кот.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391899
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТигр априори семейства кошачьих.

Но он называется тигр, а не кот.

Ты дурак?

1. Тернарный оператор - это условный оператор.
2. Тема называется "Условный оператор" и конкретизируется какой именно - "?".

В чем противоречие?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391900
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ1. Тернарный оператор - это условный оператор.

не всякий тернарный является условным
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391909
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилне всякий тернарный является условным

http://ru.wikipedia.org/wiki/Тернарная_условная_операция

Это как получается, тернарный условный оператор иногда бывает не условным? Пойду приму валидол...
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391921
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изо что?не всякий тернарный является условным

в шарпе много тернарных операторов?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391934
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правильный вариант без двойного вызова:

Код: c#
1.
2.
string _value = ValueGet(params);
_value = _value == "" ? "800" : _value;
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391943
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭто как получается, тернарный условный оператор иногда бывает не условным? Пойду приму валидол...

яд лучше прими.

"Тернарный оператор" и "тернарный условный оператор"
разницу видишь?

а шарп - не шарп - это отдельная история
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391948
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если свой мозг не жаль, то можно написать то, что плохо читается:

Код: c#
1.
_value = (_value = ValueGet(params)) == "" ? "800" : _value;
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391949
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAntonariyТигр априори семейства кошачьих.

Но он называется тигр, а не кот.

Ты дурак?

1. Тернарный оператор - это условный оператор.
2. Тема называется "Условный оператор" и конкретизируется какой именно - "?".

В чем противоречие?В твоей голове. Условный оператор "?" называется тернарным. Это я сообщил автору, если он не в курсе.
Ты тут вообще не в кассу.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391954
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411если свой мозг не жаль, то можно написать то, что плохо читается:

Код: c#
1.
_value = (_value = ValueGet(params)) == "" ? "800" : _value;


хорошо до того момента,пока _value не является свойством
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391957
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До 5 страниц взлетит сегодня, интересно?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391960
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да, я в первый раз написал "не условный". Ошибся.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391961
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisДо 5 страниц взлетит сегодня, интересно?
ну дык для этого в вентилятор вбросить надо
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391964
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропиляд лучше прими.
Не буду.

Изопропил"Тернарный оператор" и "тернарный условный оператор"
разницу видишь?
Вижу. Ты выкинул слово "условный", только не понятно зачем.

Изопропила шарп - не шарп - это отдельная история
Примеры будут?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391966
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дела, на ровном месте развели срач и говнокод.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391969
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМСУпропущено...


Ты дурак?

1. Тернарный оператор - это условный оператор.
2. Тема называется "Условный оператор" и конкретизируется какой именно - "?".

В чем противоречие?В твоей голове. Условный оператор "?" называется тернарным. Это я сообщил автору, если он не в курсе.
Ты тут вообще не в кассу.

Противоречие в твоем воспаленном воображении. Не выкручивайся на счет "сообщил, мало ли, вдруг он не знает". Ты ляпнул глупость, которой место на свалке отходов (99% твоих сообщений).
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391984
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да успокойтесь вы
Тернарный условный оператор - лишь синтаксический сахар. (т.е. меняется только синтаксис)
Условный оператор - это чистая семантика (без уточнения синтаксиса)
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391986
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тернарный — прил. Состоящий из трёх частей, компонентов

где здесь условный?

МСУПримеры будут?
в шарпе и c++ только один тернарный оператор
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391987
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411Тернарный условный оператор - лишь синтаксический сахар.
изобрази, что он подслащивает
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391989
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭтот оператор называется не условным, а тернарным.В MSDN он называется условным (conditional).

Оператор ?: (справочник по C#)
?: Operator (C# Reference)

Какие проблемы?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391991
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAndrew1411если свой мозг не жаль, то можно написать то, что плохо читается:

Код: c#
1.
_value = (_value = ValueGet(params)) == "" ? "800" : _value;


хорошо до того момента,пока _value не является свойством

а помне, так однозначно плохо.
хорошо сказал(а) skyANA:
string value = ValueGet(params, "800");

все остальное шлак.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391995
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилтернарный — прил. Состоящий из трёх частей, компонентов
где здесь условный?
Речь о предложении "тернарный оператор". Перечитай топик.

Изопропилв шарпе и c++ только один тернарный оператор
Речь не о количестве тернарных операторов в конкретном языке. Вот еще пример .
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391996
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКакие проблемы?
в нарушении логики
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391997
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAntonariyЭтот оператор называется не условным, а тернарным.В MSDN он называется условным (conditional).

Оператор ?: (справочник по C#)
?: Operator (C# Reference)

Какие проблемы?Никаких.
14818840
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391998
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРечь о предложении "тернарный оператор". Перечитай топик.
читаю. Почему произвольный тернарный оператор обязан быть условным?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38391999
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAntonariyЭтот оператор называется не условным, а тернарным.В MSDN он называется условным (conditional).

Оператор ?: (справочник по C#)
?: Operator (C# Reference)

Какие проблемы?

+1. ЧТД.

P.S. Изопропилу с унылым Antonariy даём выпить яду. На пару.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392001
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУРечь о предложении "тернарный оператор". Перечитай топик.
читаю. Почему произвольный тернарный оператор обязан быть условным?
Потому что так написано в MSDN и вики. Кому верить, им или Изопропилу с ядом? Я выбираю первое
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392003
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

понятия унарный, бинарный, тернарный существуют и за рамками c++/c#
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392005
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПотому что так написано в MSDN и вики.
мощно задвинул
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392010
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУ, понятия унарный, бинарный, тернарный существуют и за рамками c++/c#
Я тебе предлагал уже 10 раз привести примеры, когда тернарный оператор может быть не условным. Ты же пишешь какую-то хрень про прилагательные. Еще раз повторить вопрос?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392015
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAndrew1411Тернарный условный оператор - лишь синтаксический сахар.
изобрази, что он подслащивает

Код: c#
1.
_value = condition ? valueIfTrue : valueIfFalse;



эквивалент

Код: c#
1.
2.
3.
4.
if(condition)
    _value =  valueIfTrue;
else
    _value =  valueIfFalse;




не вкурсе?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392022
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИзопропилМСУ, понятия унарный, бинарный, тернарный существуют и за рамками c++/c#
Я тебе предлагал уже 10 раз привести примеры, когда тернарный оператор может быть не условным. Ты же пишешь какую-то хрень про прилагательные. Еще раз повторить вопрос?

не мешайте им писать на русском, какой нафиг шарп, их в 1ц переводить надо :)
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392028
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAndrew1411Тернарный условный оператор - лишь синтаксический сахар.
изобрази, что он подслащивает
Ты меня пугаешь... if-else он подслащивает, что же еще.
http://en.wikipedia.org/wiki/Conditional_(computer_programming) is simply syntactic sugar for else followed by if
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392033
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411не вкурсе?
в c# if .. else.. не может быть операндом
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392051
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, яд еще не подействовал?
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392062
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИзопропил, яд еще не подействовал?
Код: c#
1.
_value = new [] { ValueGet(p), "800" }.First(x => x != "");
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392064
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

делать нефиг? смотри msil.

совсем нефиг? вспоминай классический ассемблер.

ах, да, это ж не по русски :)
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392078
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411смотри msil.
зачем смотреть? ты напиши сначала на шарпе
_value= if (ValueGet(p)!="") ValueGet(p) else "800";


Andrew1411вспоминай классический ассемблер.
для меня классический ASM/F для 360


Andrew1411делать нефиг? есть немного
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392080
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУИзопропил, яд еще не подействовал?
Код: c#
1.
_value = new [] { ValueGet(p), "800" }.First(x => x != "");



походу подействовал.
теперь вместо Linq2Object стоит воспользоваться Hibernate'ом, сохраняя промежуточные данные в базе, а то как то быстро все работает :)
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392087
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

смотреть затем, что если возвращаемся к шарпу - смотреть надо реализацию а не синтаксис.
если говорим (как вам, сударь, хотелось) без привязки к шарпу, то от синтаксиса вообще уходим и думаем только над семантикой.

написать метод на дженеках, принимающий экспрешенны?

хотя, нет. это вам на ДЗ.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392095
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411смотреть надо реализацию а не синтаксис.
синтаксический сахар касается синтаксиса.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392115
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилсинтаксический сахар касается синтаксиса.

Умница!
теперь думаем дальше....
если у нас есть операция с нужной семантикой, конторая не удовлетворяет нас по синтакису, то разработчики языка могут сделать обертку над этой операцией, что бы было ее легко применить в другом синтаксическом окружении.

тернарный оператор был придуман давно, и он как правило условный (знатаки-мультиязычники, приведите пример тернарного оператора не являющимся условным).

Детишки, запомните, правильно заданный вопрос содержит до 80% ответа.
берите пример с Изопропил'а!!!
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392117
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУ1. Тернарный оператор - это условный оператор.
не всякий тернарный является условнымВ C# тернарный оператор один, поэтому слово "условный" можно опустить. Про другие языки речь вроде как не идёт...
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392133
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411если у нас есть операция с нужной семантикой, конторая не удовлетворяет нас по синтакису
Нет. Нельзя if else использовать как операнд.

T? как замена Nullable<T> - это сахар
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38392143
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилAndrew1411если у нас есть операция с нужной семантикой, конторая не удовлетворяет нас по синтакису
Нет. Нельзя if else использовать как операнд.

T? как замена Nullable<T> - это сахар

Детки, несколько подряд идущих операций вы можете выделить в метод. об этом вы узнаете из главы "Рефакторинг"
кроме того, поскольку ваша группа показала успешные знания по лямбдам, сделать это можно даже постановкой метода вместо выражения, даже, если у вас анонимный метод:

a = f(
(condition, trueExpression, falseExpression) => {if condition return trueExpression(); return falseExpression();}
);

В данном примере, вы видете использования не счень простой конструкции в качестве параметра функции.
...
Рейтинг: 0 / 0
Условный оператор ?:
    #38396701
Andry_Палыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо парни, помогли, чо тут скажешь :) зачётный срач получился
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Условный оператор ?:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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