Size: a a a

BY Microsoft .NET User Group

2018 November 29

A

Anatoly in BY Microsoft .NET User Group
Arciom Prudnikaŭ
думаю, что может
поэтому надо публичные методы анально огораживать от такого
деалать string? s и проверочку
можно просто не юзать c#8, я понял
источник

K

Karen in BY Microsoft .NET User Group
Anatoly
можно просто не юзать c#8, я понял
тут на самом деле много вопросов может встать. С теми же интерфейсами
источник

A

Anatoly in BY Microsoft .NET User Group
Пока что string? s просто вешает System.Runtime.CompilerServices.NullableAttribute на параметр
источник

A

Anatoly in BY Microsoft .NET User Group
Karen
тут на самом деле много вопросов может встать. С теми же интерфейсами
с интерфейсами написано - хочешь поддерживать старые рантаймы, хер тебе, а не дефолтные интерфейсы. Так что я их из библиотек сразу выкинул
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
EgorBo
не, я намеренно) чтобы показать разницу в 2 порядка
в ML.NET полностью все сделано через интерфейсы и extension методы на интерфейсах) видимо считают что так ок
источник

AS

Artem Sviridov in BY Microsoft .NET User Group
@EgorBo есть проблемка - NoLinq рассчитывает, что есть свойство Count - а его может и не быть
источник

A

Anatoly in BY Microsoft .NET User Group
Artem Sviridov
@EgorBo есть проблемка - NoLinq рассчитывает, что есть свойство Count - а его может и не быть
тогда есть Length, а если и его нет, то в перфоманс-ориентед коде вы используете что-то не то
источник

E

EgorBo in BY Microsoft .NET User Group
Artem Sviridov
@EgorBo есть проблемка - NoLinq рассчитывает, что есть свойство Count - а его может и не быть
ну я просто показать оверхед)
источник

E

EgorBo in BY Microsoft .NET User Group
Any() - жирный
источник

AS

Artem Sviridov in BY Microsoft .NET User Group
это да, согласен
источник

AS

Artem Sviridov in BY Microsoft .NET User Group
в System.Linq.Enumerable решается приведением к IList<TSource>  )
источник

E

EgorBo in BY Microsoft .NET User Group
не инлайнится, содержит 2 или 3 каста к интерфейсам + 3 вызова GetEnumerator, MoveNext + Dispose просто чтобы узнать что список не пуст
источник

E

EgorBo in BY Microsoft .NET User Group
источник

E

EgorBo in BY Microsoft .NET User Group
1 каст, но если его убрать и вынести выброс экспшна в отдельный метод - можно инлайнуть и ускорить)
источник

A

Andre in BY Microsoft .NET User Group
Такой оверхед из-за каста и MoveNext?
источник

E

EgorBo in BY Microsoft .NET User Group
выше скрин бенча
источник

A

Andre in BY Microsoft .NET User Group
Да я видел, просто удивлен :)
источник

A

Anatoly in BY Microsoft .NET User Group
почему?
источник

A

Andre in BY Microsoft .NET User Group
Ну на 2 порядка
источник

A

Andre in BY Microsoft .NET User Group
На 3
источник