interface IMyInterface<out T>
public string Name { get; set; }
public int Age { get; set; }
class MyClass : IMyInterface<Derived>
private Derived _derived = new Derived { Name = "Mozart", Age = 35 };
static void Main(string[] args)
IMyInterface<Base> obj = new MyClass();
Base baseObj = obj.Get();
Console.WriteLine(baseObj.Name);