Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

GD0111: Il pulsante tool esportato deve essere una proprietà con corpo di espressione

ID regola

GD0111

Categoria

Utilizzo

Soluzione è distruttiva o non-distruttiva

Non-distruttiva

Abilitato per predefinito

Si

Causa

Una proprietà è annotata con l'attributo [ExportToolButton] ma non è una expression-bodied property.

Descrizione della regola

Quando si ricarica l'assembly .NET, Godot tenterà di serializzare i membri esportati per preservarne i valori. Un campo o una proprietà con un campo sottostante che memorizza un Callable potrebbe impedire lo scaricamento dell'assembly.

Una proprietà con corpo di espressione (expression-bodied) non ha un campo di supporto e non memorizzerà il Callable, quindi Godot non tenterà di serializzarla, il che dovrebbe comportare il ricaricamento corretto dell'assembly .NET.

[ExportToolButton("Click me!")]
public Callable ValidClickMeButton => Callable.From(ClickMe);

// Invalid because the Callable will be stored in the property's backing field.
[ExportToolButton("Click me!")]
public Callable InvalidClickMeButton { get; } = Callable.From(ClickMe);

Come risolvere le violazioni

Per correggere una violazione di questa regola, sostituire l'implementazione della proprietà con una expression-bodied property.

Quando sopprimere gli avvertimenti

Do not suppress a warning from this rule. Callable instances may prevent the .NET assembly from unloading.