Интересно, почему IEnumerable
не может быть назначен IEnumerable < объект>
. В конце концов IEnumerable
- один из немногих интерфейсов, поддерживающих ковариацию ...
int
, кажется, правильный подтип ] object
Однако комбинация обеих функций не работает ...
class A
{
}
class B : A
{
}
class Program
{
static void Main(string[] args)
{
bool b;
b = typeof(IEnumerable<A>).IsAssignableFrom(typeof(List<B>));
Console.WriteLine("ienumerable of ref types is covariant: " + b); //true
b = typeof(IEnumerable<object>).IsAssignableFrom(typeof(List<int>));
Console.WriteLine("ienumerable of value tpyes is covariant: " + b); //false
b = typeof(object).IsAssignableFrom(typeof(int));
Console.WriteLine("int is a subtype of object: " + b); //true
}
}
спасибо за вашу помощь! sebastian