【发布时间】:2014-04-13 22:09:03
【问题描述】:
我知道 IEnumerable 是一个接口,而且我也知道当一个类实现一个接口时,它必须为该接口中的方法实现特定的主体。我最近一直在编写一个程序,我觉得我需要将 Ienumerable 实现到我的一个类中,以便允许它在 foreach 循环中使用。在我这样做之后是这样完成的:
class FData: IEnumerable<EClass> {
// Removed the irrelevant contents
public IEnumerator<EnumerableClass> GetEnumerator()
{
for (int i = 0; i < Emp_Id.Count; i++) {
yield return (new EnumerableClass { Emp_Id = Emp_Id[i], Salary = Salary[i] });
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
我看到我的 FData 类可以完全像 List 一样使用,就好像它继承了所有可枚举的方法,例如 Select()、All()、Any() 等。
我想知道如果这些方法的行为没有在接口中定义,这到底是怎么发生的?
【问题讨论】: