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 an enum-type, the base types of T are the class types
System.Enum, System.ValueType, and
object.
?If T is a struct-type, the base types of T are the class types
System.ValueType and 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.
base types:
?If T is object, then T has no base type.
?If T is an enum-type, the base types of T are the class types
System.Enum, System.ValueType, and
object.
?If T is a struct-type, the base types of T are the class types
System.ValueType and 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.