Я пытаюсь понять, почему этот состав не работает:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CastTest {
class Foo {}
// I want to use this kind of like a typedef, to avoid writing List<Foo> everywhere.
class FooList : List<Foo> {}
class Program {
static void Main(string[] args) {
FooList list = (FooList) Program.GetFooList();
}
// Suppose this is some library method, and i don't have control over the return type
static List<Foo> GetFooList() {
return new List<Foo>();
}
}
}
Это генерирует ошибку во время выполнения:
InvalidCastException: невозможно привести объект типа 'System.Collections.Generic.List`1 [CastTest.Foo]' к типу CastTest.FooList.
Может кто-нибудь объяснить, почему это не работает, и могу ли я как-нибудь обойти это?