假设以下扩展方法:
public static string ToFooBarString(this object obj)
{
...
}
public static string ToFooBarString< T >(this IEnumerable< T > obj)
{
...
}
现在我通过 IEnumerable<T> 接口的实现来调用它,比如说
Dictionary< int , string > f; // implements IEnumerable< KeyValuePair< int , string > >
f.ToFooBarString(); // <--- which one is called?
在这种情况下调用哪一个,为什么?