|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Что возвратит данный код? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:01 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
pation, Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:06 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
pation, 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 14:41 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
5, т.к. сравнение не отработает. Сомнительная проверка на проф пригодность. Столкнулся с этим относительно недавно, раньше не знал об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 15:19 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 16:04 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Супер_Пав, 5? а тест запускали? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 16:47 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
buserСупер_Пав, 5? а тест запускали? после того,как вы спросили, запустил. 5. Как я и говорил, сравнение не вызывается, т.к. переопределено не правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 16:59 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
pationpation, Почему? Ну да правильный ответ ужо был - пуркуа что GetHashCode(). Не зря в учебниках о том пишут. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:17 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Тот же решарпер в случае, когда из пары Equals/GetHashCode переопределен только один метод, подчеркивает переопределенный метод, и настойчиво рекомендует переопределить второй, что в общем-то правильно, хотя в данном случае не вполне очевидно - Distinct использует внутренний класс Set<T>, который для обнаружения аналогичного элемента активно использует поиск во внутренних структурах на основании хэшкода. Если нашлось - дальше вызывает IEqualityComparer<TSource> (если не задан, то дефолтный), если не нашлось - Equals объекта вообще не будет вызван, считается, что он уже уникален. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 17:32 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Что вернёт данный код? Код: javascript 1.
Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:18 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
skyANA, [1, 2, 3, 4, 5].map(x=>parseInt(x,4)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 18:23 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныEquals объекта вообще не будет вызван, считается, что он уже уникален. ох, не конечно, equals всегда будет вызван ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2019, 21:02 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
hVosttСон Веры ПавловныEquals объекта вообще не будет вызван, считается, что он уже уникален. ох, не конечно, equals всегда будет вызван Это легко проверяется установкой брейкпоинта в теле Equals. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 03:13 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 08:27 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
В случае Distinct, без переданного компарера, будет вызван Код: c# 1.
Который сравнит ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 09:54 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
ЕвгенийВВ случае Distinct, без переданного компарера, будет вызван Код: c# 1.
Который сравнит ссылки. Он не сравнит ссылки, он вызовет obj1.Equals(obj2): https://referencesource.microsoft.com/#mscorlib/system/collections/generic/equalitycomparer.cs,250 (сравение ссылок - это ReferenceEquals). Если Equals переопределен, то, разумеется, вызовется переопределенный метод. Но до этого не доходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 09:58 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Кстати, если так Код: c# 1.
То результат 2. Ешо одын отличий клас от структур! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 09:59 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
ЕвгенийВКстати, если так Код: c# 1.
То результат 2. Ешо одын отличий клас от структур! Ну, у структур хэшкод вычисляется совсем не так, как у классов, это вроде бы известный факт. Особенно если у структуры нет ссылочных полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 10:02 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
ЕвгенийВКстати, если так Код: c# 1.
То результат 2. Ешо одын отличий клас от структур! Нет, то же будет 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 11:41 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныТот же решарпер в случае, когда из пары Equals/GetHashCode переопределен только один метод, подчеркивает переопределенный метод, и настойчиво рекомендует переопределить второй, что в общем-то правильно, хотя в данном случае не вполне очевидно - Distinct использует внутренний класс Set<T>, который для обнаружения аналогичного элемента активно использует поиск во внутренних структурах на основании хэшкода. Если нашлось - дальше вызывает IEqualityComparer<TSource> (если не задан, то дефолтный), если не нашлось - Equals объекта вообще не будет вызван, считается, что он уже уникален. Решарпер для GetHashCode формирует очень сомнительный код, который в большинстве случаев работает неправильно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 11:42 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
pationРешарпер для GetHashCode формирует очень сомнительный код, который в большинстве случаев работает неправильно Ээмм.. ну да, обычно он его формирует как Код: c# 1. 2. 3. 4.
Я всегда считал, что это просто болванка, в которую нужно вписывать свой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 11:52 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, вообще-то я говорил о том, что он предлагает что вроде такого: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 11:58 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
pationСон Веры Павловны, вообще-то я говорил о том, что он предлагает что вроде такого: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Мой решарпер ни разу мне такого не предлагал. Более того, обычно вычисление хэшкода на основе неиммутабельных полей чревато очень серьёзными граблями, так что я как-то вообще удивлён. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 12:34 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЕсли Equals переопределен, то, разумеется, вызовется переопределенный метод. Но до этого не доходит. Да, хеш будет вычислен от ссылки. Но опять таки, by design. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 12:48 |
|
Задача на проф. пригодность
|
|||
---|---|---|---|
#18+
hVosttСон Веры ПавловныЕсли Equals переопределен, то, разумеется, вызовется переопределенный метод. Но до этого не доходит. Да, хеш будет вычислен от ссылки. Но опять таки, by design. А вот фик там :) Ссылка может поменяться после сборки мусора, но у одного и того объекта, на протяжении жизни хеш должен быть постоянным. Видимо ради экономии места, для вычисления хеша, используется тоже самое поле, что и для lock. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2019, 13:47 |
|
|
start [/forum/search_topic.php?author=qwertyasd&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
6ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 446ms |
total: | 647ms |
0 / 0 |