Возможный дубликат:
Структуры, интерфейсы и бокс
Из MSDN: http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx
Бокс - это процесс преобразования типа значения в объект типа или любой тип интерфейса, реализованный этим типом значения.
Но как насчет общих интерфейсов?
Например, int
происходит как от IComparable
, так и от IComparable<int>
.
Скажем, у меня есть следующий код:
void foo(IComparable value) { /* etc. */ }
void bar(IComparable<T> value) { /* etc. */ }
void gizmo()
{
int i = 42;
bar(i); // is `i` boxed? I'd say YES
foo(i); // is `i` boxed? I fear it is (but I hope for NO)
}
Есть ли bar
(или любая функция, использующая не общий интерфейс) означает, что будет бокс?
Есть ли foo
(или любая функция, использующая общий интерфейс для типа), означает, что будет бокс?
Спасибо.