
Friedrich
23.06.2017
10:40:21

Ilya
23.06.2017
10:40:33
я не знаю про инлайн методы

Friedrich
23.06.2017
10:40:37

Ilya
23.06.2017
10:40:39
знаю только что они быстро работают

Google

Friedrich
23.06.2017
10:40:40
Но это неверно.
Если ты заинлайнишь там локальный метод, то сломаешь контракт!
Если никто не знает, то щас расскажу :)

Sergey
23.06.2017
10:41:18
расскажи, может мы знаем но не понимаем этого )
или не знаем )

Friedrich
23.06.2017
10:41:36
Соль вот в этом коде: https://github.com/morelinq/MoreLINQ/blob/85f821edc83519217315c22199ba27f5c063039a/MoreLinq/DistinctBy.cs#L68-L69

Gid
23.06.2017
10:41:57
MORE LINQ

Friedrich
23.06.2017
10:41:59
В обычном методе с yield return проверки бы выполнились только при начале перечисления итератора.

Denger76
23.06.2017
10:42:05

Friedrich
23.06.2017
10:42:26
А вот в этом коде (и в методе до рефакторинга) проверки всегда выполнялись сразу, а после возвращался итератор.

Sergey
23.06.2017
10:42:52
иии в чем разница?

Friedrich
23.06.2017
10:42:54
То есть ArgumentNullException отсюда должен вылететь, даже если итератор никто не обходит

Sergey
23.06.2017
10:42:56
я не понимаю )

Google

Ilya
23.06.2017
10:43:26
а блэт
понял

Sergey
23.06.2017
10:44:08
а можно вызвать DistinctBy без начала перечисления?

Friedrich
23.06.2017
10:44:41
Старый код:
var iterator = Enumerable.Empty<int>().DistinctBy(null, null) — падает
Если б DistinctBy был реализован на yield return, то этот код бы не упал, а упал бы только после
var iterator = Enumerable.Empty<int>().DistinctBy(null, null);
var list = iterator.ToList(); // ArgumentNullException!

Sergey
23.06.2017
10:45:05
аааа

Ilya
23.06.2017
10:45:30
так ладно, допустим убедил
но чем предыдущая релизация лучше была
зочем локальный метод

Friedrich
23.06.2017
10:45:58
Предыдущая реализация не была "лучше", в ней был отдельный глобальный метод.
С точки зрения быстродействия она, кажется, ничем не отличалась — если, конечно, JIT не применяет к локальным методам каких-то хитрых оптимизаций, про которые я не знаю.

Ilya
23.06.2017
10:47:18
всё не просто с айэнумербл

Gid
23.06.2017
10:47:24
Ребзя, подскажите
Кто как бы реализовал дессериализацию поля которое может быть или стринг или аррей
(спасибо хорошему апи за это)
или хотяб как это гуглить

Friedrich
23.06.2017
10:48:10
Охохо...

Victor
23.06.2017
10:48:13
я нуб но могу попробовать

Летучая
23.06.2017
10:48:17
JsonConverter кастомный можно бахнуть

Олег
23.06.2017
10:48:24

Gid
23.06.2017
10:48:28

Google

Летучая
23.06.2017
10:48:35
я так эксепшны глотаю, когда вк вместо списка присылает false

Victor
23.06.2017
10:48:39
ловить как обжект а там по эксепшену если одна обламывается то в другую идти))

Gid
23.06.2017
10:48:41
мне б для ангуляра конечно, но даже способ для шарпа пойдёт
буду знать от чего отталкиваться
я думал сделать это поле dynamic
а потом скачать либу isArray))00

Олег
23.06.2017
10:49:08
А чо, нет у ваших json либ методы типа isArray()?
У нас в Java есть, кек

Gid
23.06.2017
10:49:22
тупо рав жсон
на шарпе есть инфа 100%

Летучая
23.06.2017
10:49:51
Json.NET юзаешь?

Ilya
23.06.2017
10:49:57
dynamic

Олег
23.06.2017
10:49:59
Ну Json.net, наверное, умеет

Gid
23.06.2017
10:50:00
та мне на фронте отловить
над
)

Летучая
23.06.2017
10:50:12
А на фронте в чём проблема

Gid
23.06.2017
10:50:26
в том что я хз как это сделать, не сталкивался ни разу
даже не знаю как гуглить

Google

Летучая
23.06.2017
10:50:42
https://stackoverflow.com/questions/951483/how-to-check-if-a-json-response-element-is-an-array

Sergey
23.06.2017
10:50:46

Летучая
23.06.2017
10:51:05
Фридрих же тимлид сениор софтваре аркитект

Friedrich
23.06.2017
10:51:11

Олег
23.06.2017
10:51:57

Sergey
23.06.2017
10:52:03
Я уже несколько раз пытался его прочитать, тяжко (
страниц наверное 400 осилил, в голове правда мало что остается

Летучая
23.06.2017
10:52:38
Прикольно
И вот весь чистый жс это такая наркомания

Gid
23.06.2017
10:52:50
У тебя приходит респонс с массивом
в нём элемент внутри называется одинаково
но может быть или стринг или аррей

Sergey
23.06.2017
10:53:33
надо в очередной раз за рихтера взяться

Олег
23.06.2017
10:57:33

Friedrich
23.06.2017
11:00:31
надо в очередной раз за рихтера взяться
Кстати, когда я первый раз его читал, он мне показался невыносимо скучным, и я дропнул на второй главе. Перечитывал уже после того, как немножко прокачался в C# — и показалось нормально, осилил всего за несколько дней.
Я вообще не знал, что у toString можно получить length %)
Это что вообще?
А, это количество аргументов. Хитро!

Shaman
23.06.2017
11:04:34

Google

Friedrich
23.06.2017
11:04:48
Это количество аргументов функции toString, и по смыслу имеется в виду именно это.

Олег
23.06.2017
11:05:03

Friedrich
23.06.2017
11:05:27
Это работает
До тех пор, пока тебе не поменяют определение toString :)

Nikolay
23.06.2017
11:06:19

Friedrich
23.06.2017
11:07:09

Vlod
23.06.2017
11:07:48
Людя, подскажите, можно ли узнать, сколько методов в делегате находится?

Олег
23.06.2017
11:08:00

Friedrich
23.06.2017
11:08:01
Охохо, какие сегодня прекрасные вопросы!

Vlod
23.06.2017
11:08:08
)

Friedrich
23.06.2017
11:08:09
Шта?
Вопрос корректный, не обижайте его.
На ум сходу приходит только рефлекшен.

Igor
23.06.2017
11:09:18

Vlod
23.06.2017
11:09:27
я создал делегат, чтобы он опосвещал объекты, когда должен сработать метод, когда объекты удаляются, я минусую метод из делегата
Эта группа больше не существует