C# 为什么要使用IEnumerable<;T>;需要实现IEnumerable
如果我只想使用通用版本IEnumerable,我不仅要实现C# 为什么要使用IEnumerable<;T>;需要实现IEnumerable,c#,oop,C#,Oop,如果我只想使用通用版本IEnumerable,我不仅要实现IEnumerator GetEnumerator(),还要实现IEnumerator GetEnumerator(),后者似乎是多余的接口是在1.1.net framework中引入的。 但是只有2.0中的泛型版本(带有泛型)。所以,这是向后兼容性。存在只接受IEnumerable的遗留代码: void Method(IEnumerable list) { foreach(var item in list) {
IEnumerator GetEnumerator()
,还要实现IEnumerator GetEnumerator()
,后者似乎是多余的接口是在1.1.net framework中引入的。
但是只有2.0中的泛型版本(带有泛型)。所以,这是向后兼容性。存在只接受IEnumerable
的遗留代码:
void Method(IEnumerable list)
{
foreach(var item in list)
{
Console.WriteLine(item);
}
}
因此,如果IEnumerable
没有实现IEnumerable
,您就不能在此方法中传递List
。接口是在1.1.net framework中引入的。
但是只有2.0中的泛型版本(带有泛型)。所以,这是向后兼容性。存在只接受IEnumerable
的遗留代码:
void Method(IEnumerable list)
{
foreach(var item in list)
{
Console.WriteLine(item);
}
}
因此,如果
IEnumerable
没有实现IEnumerable
,您就不能在这种方法中传递List
。基本上有两个原因:
- 兼容性。很多遗留代码,可以处理
,但不能处理IEnumerable
。是的,现代API被设计为使用泛型,但有时我们需要使用遗留APIIEnumerable
- 有些情况下,您希望枚举,但在设计时不关心对象类型或装箱<代码>IEnumerable在这里可以。数据绑定是最明显的一种
- 兼容性。很多遗留代码,可以处理
,但不能处理IEnumerable
。是的,现代API被设计为使用泛型,但有时我们需要使用遗留APIIEnumerable
- 有些情况下,您希望枚举,但在设计时不关心对象类型或装箱<代码>IEnumerable在这里可以。数据绑定是最明显的一种
为什么IEnumerable需要实现IEnumerable找到了副本
我通过在谷歌搜索为什么IEnumerable需要实现IEnumerable找到了副本