这两个类怎么写

coyun 2014-02-26 11:23:53
是一道面试题,当时懵了,应该就是迭代接口:

已知有两个interface:
IIterator<T>: bool HasNext(), T Next()
IFilter<T>: bool Pass(T t)

要写一个类:FilteredIterator<T>:IIterator<T>
要求:
FilteredIterator用IIterator 和 IFilter 作为构造函数的参数,当Next()函数被调用时,
返回一个传递IFilter的对象。
1)当有任何成员传递filter, HasNext()函数返回真。
2)当没有元素传递IFilter而调用Next()时,系统返回NoSuchElementException.

再写一个简单的类 DividedByXFilter<int>:IFilter<int> (构造函数参数为int x)

...全文
177 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coyun 2014-02-26
  • 打赏
  • 举报
回复
是不是很难啊?高手们都退却了。。。。。。。
天蝎座小混混 2014-02-26
  • 打赏
  • 举报
回复
支持下 虽然不会写
coyun 2014-02-26
  • 打赏
  • 举报
回复
应该是这样? public class FilteredIterator<T> : IIterator<T> where T: IFilter<T>
coyun 2014-02-26
  • 打赏
  • 举报
回复
FilteredIterator是从1个接口继承的,IIterator 至于(1)和(2),就类似迭代, 如果有元素pass那个filter,HasNext就返回真; 如果没有元素pass那个filter,系统就报错;
bdmh 2014-02-26
  • 打赏
  • 举报
回复
大概是这样的构造吧,你的内容说的有很多不明确的地方,比如FilteredIterator是否从两个接口继承,包括(1),(2)看的很糊涂,不知道在说什么

        interface IIterator<T>
        {
            bool HasNext();
            T Next();
        }
        interface IFilter<T>
        {
            bool Pass(T t);
        }
        class FilteredIterator<T> where T:IIterator<T>,IFilter<T>
        {
            T _value;
            public FilteredIterator(T value)
            {
                _value = value;
            }
        }

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧