I am not so sure that ArrayList
has separate implementations of the interfaces. Consider the following code:
public interface IBase
{
int SomeInt { get; set; }
}
public interface ISub : IBase
{
int SomeOther { get; set; }
}
public class MyClass : ISub
{
public int SomeOther { get; set; }
public int SomeInt { get; set; }
}
The MyClass
type implements only the ISub
interface directly. However, if you compile the code into an assembly, and then add that assembly as reference in another project, open the Object Browser and examine the base types for MyClass
, it will feature something like this:
Base Types
|- ISub
| |- IBase
|- IBase
|- Object