|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_Я полагал чтону, сделай внешний класс более умным и будет сам создавать. Либо выкинь вообще его. Как понадобится AddRange( ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:12 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
skyANAПочему-то новички всё время выдумывают поведение, вместо того, чтобы читать книги и документацию. В высоком проектировании это называется "assumption" :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:14 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
skyANASIMPLicity_Всё равно ни хрена не понял. Я полагал что <list>.Add(<smthng>) будет сначала создавать новый элемент списка list и наполнять его (свежесозданный элемент) из переменной smthng. Почему-то новички всё время выдумывают поведение, вместо того, чтобы читать книги и документацию. В последней чёрным по белому написано, что метод тупо добавляет элемент в конец списка. Не, не так: В последней чёрным по белому написано, что метод тупо добавляет ссылку на элемент в конец списка. Про документацию: пытался читать тут и тут , и где-то ещё... Но, видимо, оооочень невнимательно ;) ... Надо наверное какой-нибудь аналог литературы типа книг Ицика Бен-Гана (только про C#) поискать... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:19 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_skyANAпропущено... Почему-то новички всё время выдумывают поведение, вместо того, чтобы читать книги и документацию. В последней чёрным по белому написано, что метод тупо добавляет элемент в конец списка. Не, не так: В последней чёрным по белому написано, что метод тупо добавляет ссылку на элемент в конец списка. Опять выдумываете, там так не написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:28 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Что будет написано в консоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:38 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_В последней чёрным по белому написано, что метод тупо добавляет ссылку на элемент в конец списка. Так в случае reference type ты добавляешь не сам элемент (он живет где-то в памяти), а типа как указатель на него. Это типа как ты пришел в какой-нибудь казенный дом, ну, допустим, в ФНС, и там в какой-то список записали тебя и твой адрес. Вот это они добавили ссылку на тебя и на твой адрес к себе в список. Если ты придешь туда еще раз и они тебя снова запишут, то они добавят еще одну ссылку на тебя, но ты при этом остаешься сам собой и обе ссылки указывают на одного и того же тебя. Вот так и работает любой reference type. Если переменная объявлена как reference type, то в переменной хранится не сам объект, а ссылка на этот объект. При копировании такой переменной куда-либо, тоже копируется не объект, а копируется только ссылка и обе переменных будут указывать на один и тот же объект. Я понятно объяснил? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:44 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
skyANAЧто будет написано в консоли? Ты сейчас человека вообще запутаешь, он еще классы не осилил как следует, а ты ему уже про структуры ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:47 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
skyANASIMPLicity_, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Что будет написано в консоли? Попробую неглядя (похоже, это как раз то, что было в моём случае): 4 4 4 PS Как выполняется list.Add(item = 1); в плане именно ( item = 1 ) не уверен, НО полагаю, что сначала выполняется присвоение а потом list.add() . Для меня это вершина говнокода, для других - "синтаксический сахар" (аналогично объявлению переменной с присвоением и проч...) PPS Кстати, касательно "Опять выдумываете, там так не написано.", по первой ссылке как раз и написано: List<T>.Add(T) MethodПараметры item T Объект, добавляемый в конец коллекции List<T>. Благодаря Вашему примеру , теперь читаю интерпретирую эту фразу по-другому. Возможно, я оперирую неправильными понятиями или [i]"выражаюсь не теми словами" . ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:32 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_skyANASIMPLicity_, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Что будет написано в консоли? Попробую неглядя (похоже, это как раз то, что было в моём случае): 4 4 4 PS Как выполняется list.Add(item = 1); в плане именно ( item = 1 ) не уверен, НО полагаю, что сначала выполняется присвоение а потом list.add() . Для меня это вершина говнокода, для других - "синтаксический сахар" (аналогично объявлению переменной с присвоением и проч...) PPS Кстати, касательно "Опять выдумываете, там так не написано.", по первой ссылке как раз и написано: List<T>.Add(T) MethodПараметры item T Объект, добавляемый в конец коллекции List<T>. Благодаря Вашему примеру , теперь читаю интерпретирую эту фразу по-другому. Возможно, я оперирую неправильными понятиями или [i]"выражаюсь не теми словами" . ;-) ответ неверный, тип int (Int32) это тип значения, он не передается по ссылке, а передается по значению. Переменная int item объявлена как локальная, значит размещается в стеке, добавляя её в массив, значение из стека копируется в кучу по адресу массива + (индекс * 4). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:38 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
skyANAЧто будет написано в консоли? Не сцы симлисити, щас мы его уделаем. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
skyANA, что будет написано в консоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:52 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
fkthatSIMPLicity_В последней чёрным по белому написано, что метод тупо добавляет ссылку на элемент в конец списка. Так в случае reference type ты добавляешь не сам элемент (он живет где-то в памяти), а типа как указатель на него. Это типа как ты пришел в какой-нибудь казенный дом, ну, допустим, в ФНС, и там в какой-то список записали тебя и твой адрес. Вот это они добавили ссылку на тебя и на твой адрес к себе в список. Если ты придешь туда еще раз и они тебя снова запишут, то они добавят еще одну ссылку на тебя, но ты при этом остаешься сам собой и обе ссылки указывают на одного и того же тебя. Вот так и работает любой reference type. Если переменная объявлена как reference type, то в переменной хранится не сам объект, а ссылка на этот объект. При копировании такой переменной куда-либо, тоже копируется не объект, а копируется только ссылка и обе переменных будут указывать на один и тот же объект. Я понятно объяснил? Неа. Непонятно. Именно так ВЕЗДЕ объясняют. А мне нужен был быстрый результат простой пример. Брильянт допилен огранён и уже попал в оправу и в понедельник засияет (в одной из туевой хучи мелких говнопроцедур, которые фактически являются интерфейсом между 2008 скулем и JSON-ом) PS Вопрос-то возник не в плане referenced type а в плане метода Add() для объекта типа list .... Оффтоп: в паскале для этого есть (был?) поинтер,- явное указание на то, что ты юзаещь ссылку. Кстати, стопроцентно ложился в исполняемый код x86-ой архитектуры. Можно было зафигачить ещё и поинтер на поинтер. В сях, по-моему, то же самое, но вместо ^ используется (использовалась?) * ... PPS Мой мозг развращён бэйсиком, ассемблером, фортраном, паскалем, си, пиэлем, тэскулем, ... . Сишарп в нём уживается тяжело, но выбора, увы, нет,- с точки зрения создания простейшего говнокода в винде и переносимости с тачки на тачку он идеален. Почти идеален. Эдакая помесь бэйсика, асма, сей и зависти к яве и паскалю. 8-q ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:58 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_, Вот, смотри. Код: c# 1. 2. 3. 4. 5.
а теперь представь, что х - это объект который ты создавал в своём изначальном коде, а y и z - это элементы списка, потому что элементы списка, это по сути такие же переменные, просто внутри списка. в твоем коде в итоге в конце все ссылки, хранящиеся в списке ссылались на один и тот же объект. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 20:07 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
Roman MejtesSIMPLicity_пропущено... Попробую неглядя (похоже, это как раз то, что было в моём случае): 4 4 4 PS Как выполняется list.Add(item = 1); в плане именно ( item = 1 ) не уверен, НО полагаю, что сначала выполняется присвоение а потом list.add() . Для меня это вершина говнокода, для других - "синтаксический сахар" (аналогично объявлению переменной с присвоением и проч...) PPS Кстати, касательно "Опять выдумываете, там так не написано.", по первой ссылке как раз и написано: пропущено... Благодаря Вашему примеру , теперь читаю интерпретирую эту фразу по-другому. Возможно, я оперирую неправильными понятиями или "выражаюсь не теми словами" . ;-) ответ неверный, тип int (Int32) это тип значения, он не передается по ссылке, а передается по значению. Переменная int item объявлена как локальная, значит размещается в стеке, добавляя её в массив, значение из стека копируется в кучу по адресу массива + (индекс * 4). Всё, мой мозг вынесен нахрен. Хорошо, что есть вижуалстудия с дебагером. PS Я про это читал, но в уме всё равно не укладывается. К тому же разговоры про сборщик мусора, стек и кучу, меня умучили. И с моей точки зрения, нет (хорошо, почти нет) разницы между char(255), string, int32 в плане хранения . Со списками раньше не работал. В команде писать на c# большой говнокод тоже бы не стал (из-за возможного пересечения типов и удолбищности версионности). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 20:08 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
fkthatskyANAЧто будет написано в консоли? Не сцы симлисити, щас мы его уделаем. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
skyANA, что будет написано в консоли? Блин!, я даже запускать такое у себя не буду - мой комп стопудово подавится ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 20:10 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
fkthatskyANA, что будет написано в консоли? Ой-вэй, задачи на замыкание-захват. Кто пойдет к доске? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 21:15 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныfkthatskyANA, что будет написано в консоли? Ой-вэй, задачи на замыкание-захват. Кто пойдет к доске? Это задача с подъ...бкой, на самом деле :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 22:31 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
fkthatЭто задача с подъ...бкой, на самом деле :-) Ну, что делать с этой подъ...бкой, знает даже решарпер. И предлагает соответствующие меры. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 03:14 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныfkthatЭто задача с подъ...бкой, на самом деле :-) Ну, что делать с этой подъ...бкой, знает даже решарпер. И предлагает соответствующие меры. А что решарпер предлагает? Я им просто не пользуюсь, вот и интересно. Там как раз в свое время поведение этой штуки в "норму" и привели. Хотя, кажется, в конфигах можно как-то настроить на старое поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 03:28 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, а, все, понял.Предлагает локальную переменную добавить. типа Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 03:30 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
fkthatskyANAЧто будет написано в консоли? Не сцы симлисити, щас мы его уделаем. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
skyANA, что будет написано в консоли? Тоже самое, что и тут: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:49 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_PPS Кстати, касательно "Опять выдумываете, там так не написано.", по первой ссылке как раз и написано: List<T>.Add(T) MethodПараметры item T Объект, добавляемый в конец коллекции List<T>. Это не тоже самое, что и SIMPLicity_В последней чёрным по белому написано, что метод тупо добавляет ссылку на элемент в конец списка. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:51 |
|
есть список в списке. Наполняется одинаковыми значениями. Как уйти от ссылок к значениям?
|
|||
---|---|---|---|
#18+
SIMPLicity_А мне нужен был быстрый результат простой пример. А по первой ссылке не такой пример? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 09:54 |
|
|
start [/forum/topic.php?fid=20&msg=39808713&tid=1398962]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 406ms |
0 / 0 |