¿Por qué no podemos usar el rendimiento y el rendimiento en el mismo método?¿Por qué no se puede usar "return" y "yield return" en el mismo método?
Por ejemplo, podemos tener GetIntegers1 y GetIntegers2 a continuación, pero no 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;
}
}
espere un segundo, jon skeet vendrá ahora. – Juvanis
Agregaré que si realmente lo necesita, podría crear un GetIngegers4 que llame a GetIntegers1 O GetIntegers2 dependiendo de una condición. – xanatos
Esto es probablemente obvio, pero en tales casos siempre podría desenrollar su colección y devolver los artículos: foreach (elemento var en new [] {4,5,6}) rendimiento devolver artículo; – Foo42