Здравствуйте, -n1l-, Вы писали:
S>>Потому что это максимально упрощённый пример, в реальном коде был цикл. N>Цикл который ищет максимальный элемент?
Вот давайте дождёмся ответа, а потом я уже буду спойлерить
S>>Вопрос стандартный: что не так-то?
A>На пустой последовательности падает?
Вот про этот момент я не подумал, но в принципе это не критично. Max() тоже бросает исключение для некоторых типов.
Здравствуйте, -n1l-, Вы писали:
N>Переопределенные операторы > и < могут возвращать все что угодно, а не только bool для объектов которые могут использоваться в aggregate.
Ещё теплее. Подсказка: тип значений — примитив.
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, -n1l-, Вы писали:
N>>Переопределенные операторы > и < могут возвращать все что угодно, а не только bool для объектов которые могут использоваться в aggregate. S>Ещё теплее. Подсказка: тип значений — примитив.
Надо глянуть, могут ли переопределенные операторы возвращать значения другого типа
N>>>Переопределенные операторы > и < могут возвращать все что угодно, а не только bool для объектов которые могут использоваться в aggregate. S>>Ещё теплее. Подсказка: тип значений — примитив.
C>Надо глянуть, могут ли переопределенные операторы возвращать значения другого типа
Конечно могут
public static C operator >(C a, C b)
{
return null;
}
public static C operator <(C a, C b)
{
return null;
}
static void PleaseStop()
{
C a = new C();
C b = a < a;
...
}
Здравствуйте, Sinix, Вы писали: S>Подсказка: на это раз вопрос не про производительность.
спойлер
Может быть речь о том, что цикл работал не по IEnumerable реализации, в то время как IEnumerable либо не была реализована, либо была реализована как-то по-другому?
Ну если речь идет не о производительности, и вопрос с подвохом, то случайно не сравнение для double/float имеется в виду? Ну там double.NaN, double.PositiveInfinite и т.п. ?
Здравствуйте, rameel, Вы писали:
R>Ну если речь идет не о производительности, и вопрос с подвохом, то случайно не сравнение для double/float имеется в виду? Ну там double.NaN, double.PositiveInfinite и т.п. ?
Здравствуйте, Sinix, Вы писали: S>Здравствуйте, rameel, Вы писали: R>>Ну если речь идет не о производительности, и вопрос с подвохом... S>Бинго! Ну и раз уже очевидно — на каких ещё типах может вылезти похожий баг?
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, -n1l-, Вы писали:
N>>Почему просто не использовать Max?
S>Потому что это максимально упрощённый пример, в реальном коде был цикл.
Значит, не максималььно уппрощенный. Aggregate в нем явно избыточен.