Ich hoffe, es gibt einen schöneren Weg, diese Methode zu schreiben & amp; Überladungen mit weniger Codeverdopplung. Ich möchte eine Sequenz von Deltas zwischen Elementen in einer Liste zurückgeben. Diese Methode: -
%Vor%funktioniert gut.
Ich dachte dann über eine Überladung nach, die ein absolutes Delta erlauben würde, würde aber die ursprüngliche Methode aufrufen, wenn absolute nicht erforderlich wäre: -
%Vor%aber das kompiliert wegen Fehler
nicht"Kann keinen Wert von einem Iterator zurückgeben. Verwenden Sie die Rendite-Rückgabe Anweisung, um einen Wert zurückzugeben, oder Bruch, um die Iteration zu beenden. "
Ich habe mir dieser Beitrag und es scheint, als ob ich nichts anderes tun kann, als den Code von der ursprünglichen Methode zu wiederholen: -
%Vor%Kann jemand einen besseren Weg vorschlagen, dies zu tun?
Der einfachste Ansatz besteht wahrscheinlich darin, die Methode in zwei aufzuteilen, von denen eine über einen Iterator-Block implementiert wird und einer nicht:
%Vor% Dieser Split-Ansatz ermöglicht es Ihnen auch, sequence
, z. B.
... in der Nicht-Iterator-Block-Methode.
Tags und Links c# refactoring ienumerable extension-methods yield