【发布时间】:2019-11-08 10:11:39
【问题描述】:
private static readonly List<List<T>> data = new List<List<T>>();
private static void ProcessData(IEnumerable<IEnumerable<T>> data) { }
private static void ProcessData(IEnumerable<IList<T>> data) { }
private static void ProcessData(IList<IEnumerable<T>> data) { }
private static void ProcessData(IList<IList<T>> data) { }
static void Main(string[] args)
{
ProcessData(data);
}
- 调用了哪个重载?
- 为什么?
- 如何在没有显式转换的情况下调用其他的?
【问题讨论】:
-
这是一个测验问题吗?您是否尝试过运行此代码?你试过做研究吗?
-
主函数中的数据是什么?
-
@Ego 看第一行代码。
-
如果这些是重载方法,那么我希望所有人都在做同样的事情,那么你应该只有一种方法 'private static void ProcessData(IEnumerable
> data) { }' 如果你是尝试这样做是错误的实施方式 -
嗯,这是来自项目的实际代码,我刚刚添加了几个重载用于研究。 Visual Studio 显示将调用 IEnumerable
> 重载。我不知道为什么。我认为这可能是第 1 次或第 4 次超载,但事实并非如此。
标签: c# .net generics interface