请问C# 中 IEnumerable是个什么意思呢?

shuxiaolele 2016-02-14 02:08:55
有这样一段代码,IEnumerable<ModuleReference>这是个什么类型呢?

还有就是 yield return new ModuleReference是什么意思呢?

谢谢大家了,小白,正在努力学习中

public override IEnumerable<ModuleReference> Modules
{
get
{
// Please fill this method with your modules with lines like this:
//yield return new ModuleReference(typeof(Module));
yield return new ModuleReference(typeof(HelloModule));
yield return new ModuleReference(typeof(HelloModule2));
}
}
...全文
259 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuxiaolele 2016-02-21
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
那你懂什么是数组吗? 集合你可以认为就是一堆性质相同的东西,放在一个容器里面 现实比喻的话,一个火柴盒,里面有一些火柴, 火柴盒这个就是集合
现在知道了O(∩_∩)O哈哈~
dp517849241 2016-02-20
  • 打赏
  • 举报
回复
就是一个泛型
dongshaohua 2016-02-19
  • 打赏
  • 举报
回复
比如说List 这样的都是继承IEnumerable
fudapeng7 2016-02-19
  • 打赏
  • 举报
回复
引用 7 楼 shuxiaolele 的回复:
IEnumerable<>是泛型的意思么?是不是泛型都有一个<>符号
<>这里面放的是什么,就是说IEnumerable里面装的东西就是什么类型
shuxiaolele 2016-02-18
  • 打赏
  • 举报
回复
IEnumerable<>是泛型的意思么?是不是泛型都有一个<>符号
  • 打赏
  • 举报
回复
那你懂什么是数组吗? 集合你可以认为就是一堆性质相同的东西,放在一个容器里面 现实比喻的话,一个火柴盒,里面有一些火柴, 火柴盒这个就是集合
shuxiaolele 2016-02-18
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
在 c# 语言中,一旦发现你使用 IEnumerable<ModuleReference> 这类的方法返回值声明,它就强制你使用 yield return、yield break 语法。所以这并不是纠结于 IEnumerable<ModuleReference> 泛型接口的问题,而是一个编程模式(也就是说,是要照着它的流程来编写流程控制代码)。
谢谢您的解释。 我搜了一下IEnumerable泛型接口,貌似是可以循环集合。但是我不知道yield return是个什么意思?
shuxiaolele 2016-02-18
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
yield return 我用的不多。 大概也就是 返回当前对象,并且将指针移到下一个对象。 至于IEnumerable<> 你就认为他是个泛型吧。可以支持遍历。
查了,是个泛型集合。我也不知道为啥是集合,虽然是I打头。但是我看不懂这段代码到底是什么意思?
秋的红果实 2016-02-15
  • 打赏
  • 举报
回复
IEnumerable是接口,<ModuleReference>似乎是一个类型,如class public override IEnumerable<ModuleReference> Modules { get { // Please fill this method with your modules with lines like this: //yield return new ModuleReference(typeof(Module)); yield return new ModuleReference(typeof(HelloModule)); yield return new ModuleReference(typeof(HelloModule2)); } } 这个似乎不是C#语法
正怒月神 2016-02-15
  • 打赏
  • 举报
回复
yield return 我用的不多。 大概也就是 返回当前对象,并且将指针移到下一个对象。 至于IEnumerable<> 你就认为他是个泛型吧。可以支持遍历。
  • 打赏
  • 举报
回复
枚举器 --> 迭代器 可能大多数都翻译为后者,还是应该叫迭代器。
  • 打赏
  • 举报
回复
IEnumerable<ModuleReference> 这种返回类型放在“方法”声明中,这叫做“枚举器”,是c#的特性。

在 .net 框架并没有枚举器这种概念,这是c#语言的特性。所以要首先记住这个特点,免得胡乱到其它地方去找文档。
  • 打赏
  • 举报
回复
在 c# 语言中,一旦发现你使用 IEnumerable<ModuleReference> 这类的方法返回值声明,它就强制你使用 yield return、yield break 语法。所以这并不是纠结于 IEnumerable<ModuleReference> 泛型接口的问题,而是一个编程模式(也就是说,是要照着它的流程来编写流程控制代码)。
bdmh 2016-02-14
  • 打赏
  • 举报
回复
问之前,你最好先去看看msdn的官方文档,IEnumerable是干嘛的,yield是干嘛的

110,535

社区成员

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

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

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