我一直有一个疑惑

weikeli19 2016-08-09 12:40:54
你们看这个接口public interface IEnumerator<out T> : IDisposable, IEnumerator 它怎么只有一个属性Current MoveNext呢 Reset呢?来自网页http://referencesource.microsoft.com/#mscorlib/system/collections/generic/ienumerator.cs,893e8cdebffde2da
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
它是对 IEnumerator 的简单扩展。
xuzuning 2016-08-09
  • 打赏
  • 举报
回复
他只是修改了一个属性 从 object Current { get; } 变成 new T Current { get; } 别的没变,没必要再抄一遍吧?
Forty2 2016-08-09
  • 打赏
  • 举报
回复
引用 4 楼 weikeli19 的回复:
都没有回答我的问题
引用 1 楼 sp1234 的回复:
它是对 IEnumerator 的简单扩展。
sp1234朋友已经回答你了。你要的那些函数,已经在IEnumerator里定义了。 你可以在referenceSource下,点击IEnumerator(下行红色部分),将链接到IEnumerator public interface IEnumerator<out T> : IDisposable, IEnumerator
巴士上的邂逅 2016-08-09
  • 打赏
  • 举报
回复
在IEnumerator里啊
weikeli19 2016-08-09
  • 打赏
  • 举报
回复
都没有回答我的问题
Forty2 2016-08-09
  • 打赏
  • 举报
回复
引用 2 楼 DOwnstairs 的回复:
这个接口是用于给其它类实现用的,所以你看到的他里面的内容是他的约定而已,除非你实现了他,否则不能调用。 这个是IEnumerator 的一个重载版本, 参数加了out 或者ref 就是另一个函数,因为调用的时候你需要显式的out或者ref。 这个重载版本你调用的时候加参数前面 out 就是调用他了
我想你误解这里的out关键字了。 它是用来表示“泛型中的协变和逆变”,而不是用来表示“引用”调用的。 https://msdn.microsoft.com/zh-cn/library/dd799517(v=vs.110).aspx
SoulRed 2016-08-09
  • 打赏
  • 举报
回复
这个接口是用于给其它类实现用的,所以你看到的他里面的内容是他的约定而已,除非你实现了他,否则不能调用。 这个是IEnumerator 的一个重载版本, 参数加了out 或者ref 就是另一个函数,因为调用的时候你需要显式的out或者ref。 这个重载版本你调用的时候加参数前面 out 就是调用他了

110,533

社区成员

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

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

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