首页 > 代码库 > return 与 yield return 的区别
return 与 yield return 的区别
昨晚虽睡得不怎么样,今天居然有点儿“顿悟”的感觉。
yield似乎在枚举器里看过,但没什么印象了,各种搜索一通,很多是转的,还长篇大论的很多文字,不知怎么有不想看下去的感觉,喝了杯咖啡,抬头看着屏幕,突然觉得我也顿悟了:
不同点总结如下:
1) 返回值类型不同:
a) return 返回其后面表达式的值可以是任何类型,暂称其为T类型;
b) 而yield return 返回IEnumerable<T>类型,总是个可枚举的对象,yield return 后面的表达式为T类型。
那么如何构成可枚举对象呢?就看yield return 语句执行多少次,执行多少次最终的可枚举对象就有多少个元素,怎么执行多少次我想不用我说了,比如循环,甚至简单的复制几遍。要说明的是每个yield return 后的表达式应该是相同或相兼容的类型,都为T类型。
2)程序控制流程不同:
a) return 语句使方法返回,后面再有语句都不执行了。
b) yield return 则不会使方法返回,继续执行后面的语句,只是计算记录最终返回的可枚举对象的一个元素值。
以上,是个人观点和总结,如有疏漏错误之处,欢迎批评指正。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。