|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Roman Mejtesкак я понял, автор просто думал, что структуры могут храниться только в стеке? про боксинг я знаю. был вопрос про именно более сложный случай - Листа (который, к тому же, внутри использует массив) структур. У меня возник вопрос. теперь я его, вроде, прояснил. Надо еще прочитать вышеприведенные ссылки на теорию, как время выкрою. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 13:16 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Списки структур и классов ведут себя по разному, чего не скажешь про массивы. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Сработает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 16:28 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Не вижу подвоха. Наверное сработает. Инициализация есть у всех этих типов ? Индексатор есть у всех ? ps. Есть правда одна загвоздка связанная со списками. Их вроде не рекомендуется проходить более одного раза. А обращаясь к списку через интексатор мы это и провоцируем. Студия наверное пропишет Варнинг, что "возможен множественный проход по ienumerable". Работать будет это лишь предупреждение. Больше проблем не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 17:25 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
а хотя. тут List, а не IEnumerable. вообще проблем не должно быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 17:26 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ЕвгенийВСписки структур и классов ведут себя по разному, чего не скажешь про массивы. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Сработает? В случае с List<MyStruct> не скомпилируется, потому что индексатор List<T> возвращает значение _items[n], где _items = T[], и в случае value-типа мы получим на выходе копию этого value-типа, которая неизменяемая. Будет ошибка компиляции "Cannot modify the expression because it is not a variable". Аналогия - Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 17:31 |
|
|
start [/forum/topic.php?fid=20&msg=39033417&tid=1401270]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 476ms |
0 / 0 |