.NET-Compiler und "Nicht alle Codepfade geben einen Wert zurück"
Warum kann der .NET-Compiler in Code wie dem folgenden nicht feststellen, dass alle Codepfade einen Wert zurückgeben?
<code>bool Test(bool param) { bool test = true; if (param) test = false; else test = false; if (!test) return false; } </code>
Fehler CS0161: Nicht alle Codepfade geben einen Wert zurück!
Der Code kann überarbeitet werden - der Compiler schlägt dies jedoch nicht vor. Alle Rückkehrpfade sind jedoch abgedeckt. Warum beschwert sich der Compiler, dass dies nicht der Fall ist?
Edit: Ich denke, die Schlussfolgerung hier ist, dass:
<code>(error CS0161) + (all code paths obviously return a value) => refactor code. </code>
Wenn Sie sich diese Übersetzung angewöhnt haben, ist alles in Ordnung.