return true / return false verstehen
Jede Execute C# Code-Sub-Action ruft deine Execute()-Methode auf, und die gibt einen bool zurück. Dieser Rückgabewert ist keine Formalität: Er steuert, ob die restliche Action-Kette nach deinem Code-Block weiterläuft oder ob die ganze Action an dieser Stelle aufhört.
Doku: docs.streamer.bot · Execute C# Code
true setzt fort, false stoppt
Abschnitt betitelt „true setzt fort, false stoppt“Stell dir die Sub-Actions einer Action als eine Liste vor, die von oben nach unten abgearbeitet wird. Dein C#-Block ist eine Zeile in dieser Liste. Was du am Ende zurückgibst, bestimmt, was mit den nachfolgenden Sub-Actions passiert.
| Rückgabewert | Was passiert |
|---|---|
return true | Alle Sub-Actions, die nach dem C#-Block stehen, laufen normal weiter. |
return false | Die Action stoppt sofort. Keine einzige nachfolgende Sub-Action wird ausgeführt. |
return false wirkt also wie eine Notbremse für den Rest der Action. Wenn dein Code merkt, dass es nichts mehr zu tun gibt oder etwas schiefgelaufen ist, beendest du die Action sauber an Ort und Stelle.
Beispiel: Guard mit early return
Abschnitt betitelt „Beispiel: Guard mit early return“Der häufigste Einsatz: Du prüfst zu Beginn ein Argument und brichst ab, wenn etwas fehlt. So nutzt du C# als Validierungs-Gate, das die nachfolgenden No-Code-Sub-Actions nur dann durchlässt, wenn die Daten stimmen.
Beispiel: Ein Command erwartet eine Eingabe hinter dem Befehl. Ist rawInput leer, postet der Code einen Hinweis und stoppt, bevor die Folge-Schritte ins Leere laufen.
public class CPHInline { public bool Execute() { // rawInput sicher lesen if (!CPH.TryGetArg("rawInput", out string rawInput) || string.IsNullOrWhiteSpace(rawInput)) { CPH.SendMessage("⚠️ Bitte gib einen Wert hinter dem Command an."); return false; // Action stoppt: keine Folge-Sub-Action läuft }
// Alles gut: Wert für die nächsten Sub-Actions bereitstellen CPH.SetArgument("validInput", rawInput.Trim()); return true; // Action-Kette läuft weiter }}Das Muster nennt man early return: Du verlässt die Methode beim erstbesten Problem, statt den Happy-Path tief zu verschachteln. Wer mehr zum sicheren Auslesen der Argumente wissen will, findet das unter Argumente lesen.
Vergleich mit dem If/Else-Break-Pattern
Abschnitt betitelt „Vergleich mit dem If/Else-Break-Pattern“Wenn du aus der No-Code-Welt kommst, kennst du das Prinzip schon. Ein return false in C# macht exakt dasselbe wie ein Break in einer Sub-Action-Kette: Es unterbricht den Flow und beendet die Action vorzeitig.
Im If/Else Pattern setzt du Break im Then-Branch, damit nach einem Treffer kein weiterer Schritt mehr läuft. In C# ist return false dein Break, und return true entspricht dem Durchlaufenlassen. Der Vorteil von C#: Du fasst mehrere Prüfungen in einem Block zusammen, statt mehrere If/Else-Sub-Actions hintereinander zu klicken.
Häufige Fallen
Abschnitt betitelt „Häufige Fallen“returnvergessen:Execute()muss laut Signatur einenboolliefern. Fehlt dasreturn, kompiliert der Code gar nicht erst, und die Sub-Action läuft nie. Im Zweifel am Ende immerreturn trueschreiben.- Versehentliches
return false: Einreturn false, das eigentlichtruesein sollte, legt alle nachfolgenden Sub-Actions still. Die laufen dann scheinbar grundlos nicht. Wenn nach deinem C#-Block nichts mehr passiert, prüf zuerst deinen Rückgabewert. returnmitten im Code: Einreturnist sofort wirksam und überspringt allen Code, der danach in der Methode steht. Das ist beim early return gewollt, kann aber zur Falle werden, wenn nach demreturnnoch wichtige Zeilen wie einCPH.SetArgumentstehen. Die werden dann nie erreicht.