static void Main(string[] args) { Container <string> c = new Container <string>(); var list = new List <string>(); list.Add("hello"); list.Add("world"); c.DoStuff("Hello World"); c.DoStuff(list); BaseContainer <string> b = c; b.DoStuff("Hello World"); }