是否可以使用Yield关键字返回不带循环的值
本文关键字:循环 返回 可以使 Yield 关键字 是否 | 更新日期: 2023-09-27 18:20:58
我没有for
循环,我想从一个方法返回5个整数。这可能吗?你能给我举个例子吗?
我想一个接一个地返回值。我搜索了许多示例,但它们都显示了使用for
循环返回yield
值的方法,一些解释说,如果没有循环,就不可能使用yield
关键字。
是的,绝对:
public IEnumerable<int> GetValues()
{
yield return 10;
yield return 5;
yield return 15;
yield return 23;
yield return 1;
}
在yield return
语句之间也可以有其他代码。尽管迭代器块中的代码有一些限制,但您可以大多数使用正常的代码结构-循环、条件等。
另一方面,如果不需要任何其他代码,为什么不返回一个列表或数组(或类似的东西)呢?
public IEnumerable<int> GetValues()
{
return new int[] { 10, 5, 15, 23, 1 };
}
如果您有更具体的要求,请给我们更多的细节。
非常好:
IEnumerable<int> myFunc()
{
yield return 1;
yield return 1;
yield return 1;
yield return 1;
yield return 42;
}
e: 更糟的是,我注意到我的代码只返回了四个整数。BRB,去喝咖啡。
是的,可以使用yield关键字返回多个值,而不使用for循环,
下面是一个很好的例子:
// yield-example.cs
using System;
using System.Collections;
public class List
{
IEnumerable <int> MyMethod()
{
yield return result1 ;
yield return result2 ;
yield return result5 ;
yield return result6;
}
}
我希望从方法返回5个整数
你所需要的只是out
参数:
void MyMethod(out int a, out int b, out int c) { a = 1; b = 2; c = 3; }
int x, y, z;
MyMethod(out x, out y, out z);