using System;
class X {}
class Y: X {}
class Wrapper<T> where T : X {}
public class HelloWorld
{
public static void Main(string[] args)
{
Wrapper<Y> y = new();
Wrapper<X> x = y; // Error here
}
}
The error is error CS0029: Cannot implicitly convert type 'Wrapper<Y>' to 'Wrapper<X>'
Here I want to convert Wrapper<Y> into Wrapper<X>.
How can I do this?
You can make it work by having a covariant interface. And you won't need the where clause either.