首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >与泛型和IEnumerable相关的方法重载解析

与泛型和IEnumerable相关的方法重载解析
EN

Stack Overflow用户
提问于 2011-02-06 06:08:37
回答 2查看 1.5K关注 0票数 19

前几天我注意到这一点,假设你有两个重载的方法:

public void Print<T>(IEnumerable<T> items) {
    Console.WriteLine("IEnumerable T"); 
}
public void Print<T>(T item) {
    Console.WriteLine("Single T"); 
}

这段代码:

public void TestMethod() {  
    var persons = new[] { 
        new Person { Name = "Yan", Age = 28 },
        new Person { Name = "Yinan", Age = 28 } 
    };  
    Print(persons);
    Print(persons.ToList()); 
}

打印:

Single T
Single T

为什么在这些情况下,Person[]List<Person>T的匹配度要高于与IEnumerable<T>的匹配度?

谢谢,

更新:也是,如果你有另一个重载

public void Print<T>(List<T> items) {
    Console.WriteLine("List T");
}

Print(persons.ToList());实际上将打印List T而不是Single T

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4910018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档