Может кто-нибудь объяснить, почему приведенный ниже код вызывает следующее исключение:
InvalidCastException: Unable to cast object of type 'System.Collections.ObjectModel.Collection'1[UserQuery+Test]' to type 'System.Collections.ObjectModel.Collection'1[UserQuery+ITest]'.
public interface ITest
{
}
public class Test : ITest
{
}
void Main()
{
Collection<Test> t = new Collection<Test>();
t.Add(new UserQuery.Test());
var casted = (Collection<ITest>)t.Cast<ITest>();
}
Подпись для Cast<T>
подразумевает вывод T
, но это не такт.Что здесь происходит?covariance
имеет какое-либо отношение к этому?