Generics списков - неявное приведение типов

Я нацелен на .NET 3.5. Допустим, у меня есть класс Боб, который является абстрактным базовым классом для SubBob.

Я могу объявить это:

Bob b = new SubBob();

Но я не могу этого сделать:

 // compliation error - can't convert
BindingList<Bob> myList = new BindingList<SubBob>(); 

Я предполагаю, что BindingList не хочет вас чтобы сделать это, потому что он должен знать, что тип, который находится справа, имеет то же расположение памяти, что и левая сторона. SubBob может иметь больший размер, чем Bob.

Есть ли способ выполнить неявное преобразование, или требуется ли приведение?

7
задан Stealth Rabbi 1 August 2011 в 12:43
поделиться