Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
GD0203: The delegate signature of the signal must return void¶
Regel-ID |
GD0203 |
Kategorie |
Verwendung |
Fix führt oder führt nicht zu Kompatibilitätsbruch |
Kompatibilitätsbruch - Wenn der Rückgabetyp geändert wird Kein Kompatibilitätsbruch - Wenn das Attribut |
Standardmäßig aktiviert |
Ja |
Ursache¶
Ein Delegate, der mit dem Attribut [Signal]
annotiert ist, hat einen Rückgabetyp, obwohl void
erwartet wurde.
Regelbeschreibung¶
Jedes Signal muss void
zurückgeben. Es können mehrere Callbacks für jedes Signal registriert werden. Wenn Signal-Callbacks etwas zurückgeben könnten, wäre es nicht möglich zu bestimmen, welcher der zurückgegebenen Werte zu verwenden ist.
// This signal delegate is invalid because it doesn't return void.
public int InvalidSignalEventHandler();
// This signal delegate is valid because it returns void.
public void ValidSignalEventHandler();
Werfen Sie einen Blick in die C#-Signale-Dokumentation für weitere Informationen über die Deklaration und Verwendung von Signalen.
Wie man Verstöße behebt¶
Um einen Verstoß gegen diese Regel zu beheben, ändern Sie den Delegate so, dass er void
zurückgibt oder entfernen Sie das [Signal]
-Attribut aus dem Delegate. Beachten Sie, dass das Entfernen des Attributs dazu führt, dass das Signal nicht registriert wird.
Tipp
Wenn das Signal nicht mit Godot interagieren muss, sollten Sie erwägen, C#-Events <https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/events/>`_ direkt zu verwenden. Bei reinen C#-Events können Sie jeden C#-Typ als seine Parameter verwenden.
Wann man Warnungen unterdrücken sollte¶
Unterdrücken Sie nicht eine Warnung zu dieser Regel. Signal-Delegates, die etwas zurückgeben, führen zu unerwarteten Laufzeitfehlern.