Dlaczego nie możemy użyć zarówno zwrotu, jak i zwrotu z inwestycji w ten sam sposób?Dlaczego nie można użyć zwrotu "powrót" i "zwrotu plonu" w tej samej metodzie?
Na przykład możemy mieć GetIntegers1 i GetIntegers2 poniżej, ale nie 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;
}
}
poczekaj chwilę, jon skeet przyjdzie teraz. – Juvanis
Dodam, że jeśli naprawdę tego potrzebujesz, możesz utworzyć GetIngegers4, który wywoła GetIntegers1 OR GetIntegers2 w zależności od warunku. – xanatos
Jest to prawdopodobnie oczywiste, ale w takich przypadkach zawsze można rozwinąć swoją kolekcję i zwrot plonów: foreach (pozycja w nowym [] {4,5,6}) zwrot z inwestycji; – Foo42