Пожалуйста, помогите мне понять, почему этот код вызывает InvalidCastException
class A {}
class Model<T> : A
{
public TModel Copy<TModel> where TModel : Model<T>
{
var copy = new Model<T>();
...
return (TModel) copy; //this line throws InvalidCastException
}
}
class TestModel : Model<A> { }
...
//I cannot do this:
var model = new TestModel();
var copy = model.Copy<TestModel>();