The difference between Foo <T>, where T: BaseObject and Foo <BaseObject>
2 answers
Consider this:
var list = new List<object>();
list.Add("Hello");
Console.WriteLine(list[0].Length); // doesn't compile
Similarly, with Foo<BaseObject>, Foo users will only have access to BaseObject elements from Foo members T. With Foo<T> where T : BaseObject, Foo users will have access to all members of any derived type actually passed for the type argument.
0