我可以在循环之外调用yield返回方法吗?

本文关键字:返回 方法 yield 调用 循环 我可以 | 更新日期: 2023-09-27 18:17:19

在某些情况下,方法应该与yield return一起使用,而在其他情况下则不应使用。

问题是,如果使用带有yield return的方法给变量赋值,则只返回一项。

在这种情况下,将需要两种方法,一种用于常规使用,另一种具有yield return。

是否有一些方法可以在循环外使用yield返回方法?

我可以在循环之外调用yield返回方法吗?

你的意思是你可以在循环之外使用 yield return吗?

答案是肯定的:

IEnumerable<string> GetStrings()
{
    yield return "foo";
    yield return "bar";
    yield return "baz";
}

…但这将是yield return的一个不寻常的用例。

使用yield return的方法将返回IEnumerable和可能更具体的东西,如IEnumerable<int>。如果您只对第一个项目感兴趣,您可以拨打:

int myInt = myYieldReturnMethod().First();