我没有for
循环,我想从方法中返回5个整数。这可能吗?你能告诉我一个例子吗?
我想一个接一个地返回值。我搜索了很多示例,但它们都显示了使用yield
循环返回for
值的方法,并且有些解释说没有循环就无法使用yield
关键字。< / p>
答案 0 :(得分:11)
是的,绝对:
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 };
}
如果您有更具体的要求,请提供更多详细信息。
答案 1 :(得分:3)
完全没问题:
IEnumerable<int> myFunc()
{
yield return 1;
yield return 1;
yield return 1;
yield return 1;
yield return 42;
}
e:打败我...加上侮辱伤害,我注意到我的代码只返回了四个整数。 BRB,喝咖啡。
答案 2 :(得分:2)
是的,可以使用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;
}
}
答案 3 :(得分:1)
我想从方法
返回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);