为什么“return”和“yield return”不能在同一个方法中使用?

2024-01-12

为什么我们不能在同一个方法中同时使用return 和yield return 呢?

例如,我们可以有下面的 GetIntegers1 和 GetIntegers2,但不能有 GetIntegers3。

public IEnumerable<int> GetIntegers1()
{
  return new[] { 4, 5, 6 };
}

public IEnumerable<int> GetIntegers2()
{
  yield return 1;
  yield return 2;
  yield return 3;
}

public IEnumerable<int> GetIntegers3()
{
  if ( someCondition )
  {
    return new[] {4, 5, 6}; // compiler error
  }
  else
  {
    yield return 1;
    yield return 2;
    yield return 3;
  }
}

return很渴望。它立即返回整个结果集。yield return构建一个枚举器。当您使用时,C# 编译器会在幕后为枚举器发出必要的类yield return。编译器不会查找运行时条件,例如if ( someCondition )当确定它是否应该发出可枚举的代码或具有返回简单数组的方法时。它检测到在您的方法中您正在使用这两种方法,这是不可能的,因为他无法发出枚举器的代码,同时又让该方法返回一个普通数组,而所有这些都适用于同一个方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“return”和“yield return”不能在同一个方法中使用? 的相关文章

  • C++ 返回值、引用、const 引用

    你能向我解释一下返回值 值引用和值常量引用之间的区别吗 Value Vector2D operator const Vector2D vector this gt x vector x this gt y vector y return t
  • WP8.1 C# 绑定联系人图像

    信息很简单 我正在尝试创建一个可以显示用户联系人的应用程序 我也是一名自学成才的程序员 所以我在某些方面有编程经验 但总体来说我对数据绑定相对较新 首先 我有一个 ListView 控件 其中包含图像绑定
  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 使用预编译头减少 clang 编译时间

    我正在开发一个数据库项目 该项目将查询 以某种高级语言表示 编译为 C 代码 这段代码由数据库编译并执行 那部分工作得很好 现在 我正在尝试减少 C 查询代码的编译时间 我想知道是否可以使用预编译头来提高性能 该查询被转换为一个名为 Que
  • 代码块 power 函数在 c 中不起作用

    我正在使用代码块来学习c 我的代码是 include
  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • 在 C# 中调用事件处理程序

    我一直在尝试学习如何在 C 中使用事件处理程序 但我无法弄清楚 handler this e 在以下代码中的作用 public event EventHandler ThresholdReached protected virtual vo
  • 在不使用 ncurses 的情况下用 C/C++ 编写“真正的”交互式终端程序,例如 vim、htop...

    不 我不想使用ncurses 因为我想了解如何 终端可以工作 并且我自己编程也很有趣 没有 必须是可移植的 它必须只能在基于 linux xterm 的终端仿真器上工作 我想做的是编写一个交互式终端应用程序 例如 htop 和 vim 我的
  • 有没有办法将 boost::json::serializer 切换为美化输出?

    Using boost json serializer如中的示例所示文档 快速查看 http vinniefalco github io doc json json usage quick look html以紧凑格式保存 json tre
  • 如何强制用户仅使用“new”创建从我派生的类的对象?

    为了实现引用计数 我们使用IUnknown http msdn microsoft com en us library ms680509 VS 85 aspx类接口和智能指针模板类 该接口具有所有引用计数方法的实现 包括Release vo
  • C++ 错误:从“char”到“const char*”的转换无效

    我对 C 完全陌生 我创建了这个函数 bool guessWord string compWord cout lt lt Guess a letter string userLetter cin gt gt userLetter for u
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • 使用宏计算源文件行数?

    是否可以使用 C C 预处理器将源文件中的行数计算为宏或某种编译时可用值 例如 我可以更换吗MAGIC1 MAGIC2 and MAGIC3在下面 并在使用时以某种方式获取值 4MAGIC3 MAGIC1 can be placed whe
  • printf() 使用字符串表“解码器环”调试库

    我写这封信是想看看你们中是否有人见过或听说过我即将描述的想法的实现 我有兴趣为嵌入式目标开发 printf 风格的调试库 目标非常遥远 并且我和目标之间的通信带宽预算非常紧张 因此我希望能够以非常有效的格式获取调试消息 通常 调试语句如下所
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • 为什么我不能对普通变量进行多态?

    我是一名Java程序员 最近开始学习C 我对某事感到困惑 据我了解 在 C 中 要实现多态行为 您必须使用指针或引用 例如 考虑一个类Shape与实施的方法getArea 它有几个子类 每个子类都以不同的方式重写 getArea 然后考虑以
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • 如何在给定点停止线程?

    我试图停止一些线程 阅读一些有关优雅地执行此操作的正确方法的内容 但我一定做错了什么 因为它根本不起作用 起初我尝试不使用lock with IsRunning不稳定 然后尝试使用锁 这是我所拥有的 private volatile boo
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c

随机推荐

  • AVX 4 位整数

    我需要执行以下操作 w i scale v i point 比例和点是固定的 而v 是 4 位整数的向量 我需要计算w 对于任意输入向量v 我想使用 AVX 内在函数来加速这个过程 然而 v i 是 4 位整数的向量 问题是如何使用内在函数
  • 带有选项字段的 Django value_list

    The values list在过滤对象中 在 django 视图中提供解决方案确实对我有很大帮助 我的代码如下所示 并且这个有效 values list ac realdata objects filter product 1 value
  • XMPP:AngularJs + Strope.js

    我有一个在 strope js 上工作的基本 XMPP 客户端 登录时我创建处理程序 例如 connect new Strophe Connection http localhost http bind connect addHandler
  • Scala 中如何处理类型名称冲突?

    我正在写一个从Scanners这迫使我定义类型Token object MyScanner extends Scanners type Token 问题是我的令牌类本身被称为Token abstract class Token case c
  • 从容器内获取 docker 网络的私有 IP 来配置 xdebug remote_host

    因此 使用 docker 和 docker compose 我喜欢提供内置于容器中的工具 这样开发团队中的其他人就不必为设置而苦苦挣扎 在这种特定情况下 我在配置 xdebug 时遇到问题 从浏览器调试时使用回连功能绝对可以正常工作 但是尝
  • Python从父包导入

    我在 Python 中导入时遇到了一些问题 这是一个简单的例子来说明问题所在 我有一个这样的目录结构 app init py sub app init py 代码 应用程序 init py shared data data 123 from
  • 自定义 docker 容器 bash

    我尝试为 Docker 容器 bash 提示设置自定义配置 以在连接时显示 git 分支名称 我找到了一切可以正确执行的方法 但我无法执行 profile甚至 bash profile容器建筑物中的文件 如果我表演source profil
  • HTML5 中的注册机标签

    所以我在 HTML5 中遇到了这个新标签
  • 为什么我的对象不会死?

    我正在尝试实现一种机制 当保存缓存文件的对象死亡时 该机制会删除缓存文件 并决定使用PhantomReference获取有关对象垃圾回收的通知 问题是我一直遇到奇怪的行为ReferenceQueue 当我更改代码中的某些内容时 它突然不再获
  • ffmpeg:哪些文件格式支持标准输入使用?

    我知道 ffmpeg 能够读取数据stdin而不是使用从磁盘读取ffmpeg i 所有文件格式都支持吗 如果不是 是否有支持的文件格式列表 你需要跑ffmpeg protocols以确定是否pipe您的 ffmpeg 版本支持的协议 从标准
  • 调整图像大小并居中裁剪图像

    所以目前我正在尝试裁剪图片并调整其大小以使其适合特定尺寸而不丢失比例 一张小图来展示我的意思 我玩了一下vocaro 的类别 http vocaro com trevor blog 2009 10 12 resize a uiimage t
  • 使用 Rails 3.1,您将“页面特定”JavaScript 代码放在哪里?

    据我了解 所有 JavaScript 都会合并到 1 个文件中 Rails 在添加时默认执行此操作 require tree 到你的底部application js清单文件 这听起来像是一个真正的救星 但我有点担心特定于页面的 JavaSc
  • PayPal IPN 回发失败

    我最近将我的 Magento live 网站从 1 6 2 0 升级到 1 7 0 0 升级后开始 我现在在 PayPal 标准付款中遇到问题 当客户使用 PayPal 付款时 PayPal 上的付款会顺利进行 但 Magento 订单状态
  • Python 判断类是否为抽象(ABC)而不使用abstractmethod

    我有一个继承自的类ABC https docs python org 3 library abc html abc ABC 并且没有任何abstractmethod 我想检查它是否是一个抽象类 目前我很困惑 确定 Python 类是抽象基类
  • 当 C++ 引用离开其范围时会发生什么?

    如果我正确解释 C 引用 它们就像指针 但具有保证的数据完整性 没有 NULL 没有 int 0x12345 但是当引用对象的范围被保留时会发生什么 如果没有涉及魔法 可能不是 引用的对象将在我背后被销毁 我写了一段代码来检查这一点 inc
  • 致命错误:调用未定义的方法 mysqli_stmt::fetch_array() [重复]

    这个问题在这里已经有答案了 在此代码中 我收到错误 致命错误 调用未定义的方法 mysqli stmt fetch array 问题是什么 search player sql db gt prepare select job from jo
  • make 总是重建 Makefile 目标

    我重新设计了大部分Makefile我的论文项目的文件 以便正确反映工作流程 为项目子目录中目标之间的依赖关系创建 make 规则 https stackoverflow com questions 23910056 creating mak
  • 在finally块中将对象引用设置为null

    public void testFinally System out println setOne toString protected StringBuilder setOne StringBuilder builder new Stri
  • 使用 pandas 读取 CSV 日期会返回日期时间而不是时间戳

    问题描述 我正在尝试将历史股票价格从 CSV 格式读取到 pandas Dataframe 中 但到目前为止我注意到一件有趣的事情 当读取某些行号时 日期列类型从pandas Timestamp into datetime 这是如何运作的
  • 为什么“return”和“yield return”不能在同一个方法中使用?

    为什么我们不能在同一个方法中同时使用return 和yield return 呢 例如 我们可以有下面的 GetIntegers1 和 GetIntegers2 但不能有 GetIntegers3 public IEnumerable