Ich vermute, du möchtest etwas wie:
%Vor% Jedes return
gibt nur eine Ebene zurück, aber indem wir den Rückgabewert in der else
-Klausel überprüfen, können wir den ganzen Stapel nach oben zurückgeben, wenn wir den richtigen Wert gefunden haben.
Das Endergebnis, das an den Aufrufer zurückgegeben wird, ist eine Nullreferenz, wenn sie nicht gefunden wurde.
Beachten Sie, dass ich den "output" -Parameter entfernt habe, der sowieso nicht effektiv gewesen wäre, da es kein ref
-Parameter war und nicht so klar wie nur ist der Rückgabewert.
Eine linq-Erweiterungslösung, die ich mir ausgedacht habe, wahrscheinlich langsamer, aber da gehts ..
%Vor%