|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Привет. Мне нужно чтобы функция возвращала IEnumerable "чего-то". Это "чего-то" я могу объявить классом или структурой. Есть ли выигрыш, если сделать структурой ? Или выигрыш появляется только если работа идет с единственным элементом - и тогда его имеет смысл объявлять структурой ? Ну и вообще есть ли смысл в List<структура> где бы то ни было ? Ну и еще. Выигрыш появляется И когда принимать структуру И когда возвращать, или только когда принимается ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 11:40 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Смысл появится только тогда (или его отсутствие станет очевидным), когда ты осознаешь, для чего это делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 11:49 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Antonariy, Мне нужно чтобы функция распарсила файл. А на выход выдала пары: 1. дата начала 2. дата конец. Вот эту пару хочу обернуть - либо в класс, либо в структуру. Их там много в файле. Соответственно, функция будет возвращать СПИСОК этих пар. Объединять ли эти пары в структуру или класс? Мне вообще не совсем ясно есть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке. Есть сомнения в выигрыше вообще. Тем более сомнения связаны с тем, что функция должна возвращать этот список. А не принимать. Что скажете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:00 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
PS. А ведь есть же специальная генерик структура, с разным количеством параметров. Забыл ее название. Которую можно использовать, чтобы не создавать свой тип структуры. Можно вот ее использовать. Но вопрос остается - нужен ли СПИСОК этих структур. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:02 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Если просто создать список - то без разницы. Если потом будет адовая работа с этим списком, то лучше массив структур. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:03 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Antonariy, Вспомнил. Tuple зовется структура. Работы со структурами не будет какой-то большой. Простая проверка на попадание в дату. И все, после этого список не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:05 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotekAntonariy, Вспомнил. Tuple зовется структура. Работы со структурами не будет какой-то большой. Простая проверка на попадание в дату. И все, после этого список не нужен.тогда что удобней и быстрей накодить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:07 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ок. тогда просто Tuple. Плюс в том, что не придется делать отдельного описания типа. все равно этот набор возвращается лишь в одном месте. Нету смысла выделять в целый именованный класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:18 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotek, Tuple работает с классами, а не структурами - если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:34 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
AxeleronProBiotek, Tuple работает с классами, а не структурами - если что. WUT? Код: c# 1.
- вполне нормально компилируется. Документация мало того, что не говорит о таких ограничениях - в ней самой же есть примеры, где фигурирует Tuple со структурными типами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:42 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Я неправильно выразился. Имел в виду, что Tuple - сам по себе класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:48 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
AxeleronСон Веры Павловны, Я неправильно выразился. Имел в виду, что Tuple - сам по себе класс. Пожалуй сойдет. Все одно, выгодны в List<struct> не обнаружено в случае возврата десятка пар дат, зато создавать именованный тип не придется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 12:50 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotekЕсть ли выигрыш, если сделать структурой ? Или выигрыш появляется только если работа идет с единственным элементом - и тогда его имеет смысл объявлять структурой ? Будет большой выигрыш по памяти в случае использования структур. Читать . ProBiotekМне нужно чтобы функция распарсила файл. А на выход выдала пары Можно использовать структуру System.Collections.Generic.KeyValuePair. Tuple, как уже было сказано, является классом . ProBiotekесть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке. Все структуры будут в куче, компактно, одна за одной. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 15:20 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
В целом, я бы посоветовал создать специальный класс с говорящим названием. Чтобы получить профит от структур их надо уметь готовить. А судя по уровню задаваемых вопросов, возникают сомнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 15:22 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotek... от Листа (находящегося в куче), который держит ссылки на структуры в стеке. ... Что скажете ? Скажем что ты пока плоховато разобрался в том о чем говоришь ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 15:47 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
petalvik, Denis. Какой тогда смысл использовать списки структур, если они все равно улетают в кучу, как и класс ? Тогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ? petalvikProBiotekесть ли выигрыш от Листа (находящегося в куче), который держит ссылки на структуры в стеке. Все структуры будут в куче, компактно, одна за одной. Я так понимаю, будут рядом чисто за счет того, что Лист внутри себя использует массив ? В классическом понимании связанных списков то они вовсе не обязательно будут рядом. Выходит, что вообще проще оперировать массивами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 16:59 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotekТогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ? В generic-листе никакого боксинга не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:06 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotekКакой тогда смысл использовать списки структур, если они все равно улетают в кучу, как и класс ? Тогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ? В классическом понимании связанных списков то они вовсе не обязательно будут рядом. В любой generic-коллекции боксинга структур не будет. Это специальная чёрная магия платформы .NET. Именно поэтому СиШарпо-бояре всегда свысока смотрели на Джава-холопов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:12 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныProBiotekТогда однозначно получается что структура даже противопоказана , т.к. будет лишний боксинг. не ? В generic-листе никакого боксинга не будет. Да ? А как структура, находящаяся в List<> улетит в кучу без боксинга ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:13 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotekДа ? А как структура, находящаяся в List<> улетит в кучу без боксинга ? В кучу улетит массив структур ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:14 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
Pallaris, однако. ну тогда, выгода от структур в списке будет: - со структурами в кучу улетит массив структур. Одним неразделенным куском - с классами в кучу улетит массив указателей - на кучу объектов размазанных по всей куче. Хм. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:18 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
В случае с объектами для листа в куче будет массив ссылок на объекты, которые будут разбросаны по куче и для доступа к ним нужно будет эти ссылки разыменовать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 17:18 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
ProBiotek, Универсальные типы во время выполнения . Если владеешь английским, то лучше в оригинале почитать, потому что перевод на русский корявый. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 18:12 |
|
List<struct> имеет ли какой-то выйгрышь по сравнению с List<class> ?
|
|||
---|---|---|---|
#18+
как я понял, автор просто думал, что структуры могут храниться только в стеке? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 20:58 |
|
|
start [/forum/topic.php?fid=20&msg=39032246&tid=1401270]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 469ms |
0 / 0 |