For purposes of member lookup, a type T is considered to have the following base types: If T is object, then T has no base type. If T is a value-type, the base type of T is the class type object. If T is a class-type, the base types of T are the base classes of T, including the class type object. If T is an interface-type, the base types of T are the base interfaces of T and the class type object. If T is an array-type, the base types of T are the class types System.Array and object. If T is a delegate-type, the base types of T are the class types System.Delegate and object.