Здравствуйте, codenet, Вы писали:
A>>Конечно не логично. http://msdn.microsoft.com/en-us/library/6a71f45d.aspx
C>что сделано так я уже понял , но вот почему? я не могу представить пример где приоритет ?? над + нарушил бы логически условие.
Здравствуйте, codenet, Вы писали:
C>Разве не логично приоритет '??' ставить выше '+' ,или лопата в другом ?
А вот для меня, скажем, вполне допустимо сделать их приоритет одинаковым.
Это я к тому, что каждому программисту приведенная запись взорвет мозг, это отличный пример необходимости расстановки скобок для явного обозначения порядка вычисления.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Приоритеты + и ??
От:
Аноним
Дата:
09.10.13 11:21
Оценка:
Здравствуйте, alxrie, Вы писали:
A>Здравствуйте, codenet, Вы писали:
A>>>Конечно не логично. http://msdn.microsoft.com/en-us/library/6a71f45d.aspx
C>>что сделано так я уже понял , но вот почему? я не могу представить пример где приоритет ?? над + нарушил бы логически условие.
A>Оператор + может быть перегружен.
не меняет сути дела , всё равно мне кажется что должны сперва вычисляться в строке все ?? операции,а потом непосредственно происходить (+) сложение полученных данных.
а тут хренотень выходит какая-то
Здравствуйте, Аноним, Вы писали:
A>>Оператор + может быть перегружен.
А>не меняет сути дела , всё равно мне кажется что должны сперва вычисляться в строке все ?? операции,а потом непосредственно происходить (+) сложение полученных данных. А>а тут хренотень выходит какая-то
С яего бы это "должны"? В языке приоритеты установлены иначе, чем Вам "кажется". И это логично: слева от ?? стоит объект — и несущественно, как этот объект получен (например, он может быть получен при помощи операции +).
Та же история с ?: , нужно просто не ленится со скобками.
Встречный пример:
int a = 1;
int b = 2;
int c = 3;
// вернуть сумму "с" с наибольшим из "а" и "b"var result1 = b > a ? b : a + c; // неправильно, 2var result2 = c + b > a ? b : a; // неправильно, 2var result3 = (b > a ? b : a) + c;
var result4 = c + (b > a ? b : a);
Здравствуйте, codenet, Вы писали:
C>Разве не логично приоритет '??' ставить выше '+' ,или лопата в другом ?
по мне нелогично — для меня ?? это из того же разряда что и ?:, && или ||.
т.е. приоритет должен быть самым низким.