Comments 7
Код простой, но результат его для структур оказался неоднозначным.
System.Int32 myInt = 7; IList l = new List<int>(); l.Add(myInt);
Вы на сигнатуру IList.Add не смотрели, что ли? Там входной параметр —
object
, при приведении любого value type к object
происходит боксинг.Все совершенно однозначно, что вас удивило?
+12
уточню: для «без боксинга» надо использовать IList<int>
и вообще не надо включать пространство
иначе такие косяки и всплывают. Для них лучше явно (UGLY) использовать
по умолчанию в новых файлах (Add\New Class...) добавляется только пространство с генериками (VS2013+. ниже проверить не могу)
и вообще не надо включать пространство
using System.Collections; // не генерики
иначе такие косяки и всплывают. Для них лучше явно (UGLY) использовать
System.Collections.IList l = new List<int>();
по умолчанию в новых файлах (Add\New Class...) добавляется только пространство с генериками (VS2013+. ниже проверить не могу)
using System.Collections.Generic;
-2
и вообще не надо включать пространство System.Collections
иначе такие косяки и всплывают.
То есть то, что сигнатуры классов различаются — не останавливает, что ли?
+2
если заюзать то пространство, то сигнатуры компилятором кушаются на ура: ты указал просто IList, он и будет использоваться
если не юзать пространство с «негенериками», то при виде просто IList компилятор матюкнется, и избежим косяка
если не юзать пространство с «негенериками», то при виде просто IList компилятор матюкнется, и избежим косяка
Using the generic type 'System.Collections.Generic.IList' requires 1 type arguments
-2
Может просто не надо указывать типы, не подумав, какие именно нужны?
+2
может быть и вариант «хочу работать с коллекцией через интерфейсы»
я комментил вариант «хочу работать с коллекцией через интерфейсы без боксинга»
в общем, думаю, до него дошло в любых вариантах :)
я комментил вариант «хочу работать с коллекцией через интерфейсы без боксинга»
в общем, думаю, до него дошло в любых вариантах :)
-1
Sign up to leave a comment.
Заметка про коллекции в C# и структуры. Вопрос памяти