powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Коллекции значимых типов
11 сообщений из 11, страница 1 из 1
Коллекции значимых типов
    #39340926
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброе время суток

Возник вопрос.
Есть коллекция:
Код: c#
1.
2.
3.
List<int>ListInt = new List<int>();
int item = 100;
ListInt.Add(item);



У Рихтера говорится, что при добавлении в обобщенную коллекцию данного целочисленного значения упаковки происходить не будет.
Как хранятся значения таких коллекций, что нет операции упаковки-распаковки?
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340937
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что характерно IL DASM это подтверждает

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
.locals init ([0] class [mscorlib]System.Collections.Generic.List`1<int32> ListInt,
           [1] int32 item)
  IL_0000:  nop
  IL_0001:  newobj     instance void class [mscorlib]System.Collections.Generic.List`1<int32>::.ctor()
  IL_0006:  stloc.0
  IL_0007:  ldc.i4.s   101
  IL_0009:  stloc.1
  IL_000a:  ldloc.0
  IL_000b:  ldloc.1
  IL_000c:  callvirt   instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
  IL_0011:  nop
  IL_0012:  ret
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340939
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В массиве хранятся. int[]
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340948
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
Но массив это ссылочный тип ( https://msdn.microsoft.com/ru-ru/library/4d43ts61(v=vs.90).aspx )
И по идее должна выполнятся операция упаковки.... а ее нет....
Как это реализовано?
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340966
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно с обычным классом и массивом внутри него получается такая же картина.....
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340974
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что List это и есть класс с массивом внутри. Исходник.

Тут обсуждали этот вопрос.
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39340987
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
Спасибо, почитаю
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39341024
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
sqldbmail,

А как практически Вы будете использовать это знание?
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39341044
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Возможно не буду писать мышкой :)
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39341045
sqldbmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
спасибо, многое прояснилось
...
Рейтинг: 0 / 0
Коллекции значимых типов
    #39341106
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2sqldbmail,
А как практически Вы будете использовать это знание?
По ссылке, которую дал Dima T, есть пример, описывающий грабли с работой с мутабельными структурами. Это знание позволит не наступать на такие грабли.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Коллекции значимых типов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]