先日これに気づきました。たとえば、2 つのオーバーロードされたメソッドがあるとします。
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
ます。