我写了一个实现IEnumerable< T>的类.我有一个返回MyClass的方法.如果我尝试从该方法中产生返回,编译器会告诉我“…不能是迭代器块,因为…不是迭代器接口类型”.
那么,我该如何定义自己的接口迭代器类型呢?它是否必须是“抽象的”(不能定义任何方法)?
我想要做的是编写一堆可链接的方法,因此每个方法都应该返回一个MyClass实例.但我需要MyClass成为一种可枚举的东西.我没有使用某种基础数据类型,而是希望我能在任何地方获得回报.
@Oded:
class SharpQuery : IEnumerable<HtmlNode> { public SharpQuery Find(string selector) { foreach (var n in this) { // filter the results yield return node; } } }