List <T>如何实现Add(对象值)?

ET.*_*ET. 5 c# interface explicit-interface c#-2.0

我相信这很愚蠢,我有点不好意思问这个问题,但我仍然找不到答案:

我正在看List<T>这个实现的课程IList.

public class List<T> : IList
Run Code Online (Sandbox Code Playgroud)

Ilist中包含的方法之一是

int Add(object value)
Run Code Online (Sandbox Code Playgroud)

我明白不List<T>应该暴露那种方法(类型安全...),它实际上没有.但它怎么可能呢?mustnt类实现整个接口?

Fre*_*els 10

我相信这个(接口)方法是明确实现的:

public class List<T> : IList
{
     int IList.Add( object value ) {this.Add((T)value);}
}
Run Code Online (Sandbox Code Playgroud)

通过这样做,该Add( object )方法将隐藏.如果将List<T>实例强制转换回实例,则只能调用它IList.