I want to verify that all the List<T>‘s elements types are T.
I can have a List<object> containing object, string, int, Product, Supplier etc’, but in my case, if the List<T> was defined as List<object> all the elements must be objects.
That is, I want to ensure that the type of the elements is the exact type of the passed in generic type, not anything else in the inheritance chain.
Example:
public void Foo<T>(List<T> list)
{
// if not all elements are of type T (not SubClass of T) throw exception
//...
}
What is the best way?
Assuming if
Tis a base class you want to disallow derived classes.