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.
Checking the stable version of the documentation...
GD0106: La proprietà esportata è un'implementazione esplicita di un'interfaccia
ID regola |
GD0106 |
Categoria |
Utilizzo |
Soluzione è distruttiva o non-distruttiva |
Non-distruttiva |
Abilitato per predefinito |
Si |
Causa
Un'implementazione esplicita di una proprietà di interfaccia è annotata con l'attributo [Export]. Non è possibile esportare le proprietà che implementano un'interfaccia esplicitamente.
Descrizione della regola
Godot non consente l'esportazione di implementazioni esplicite delle proprietà di interfaccia. Quando un membro di interfaccia è implementato esplicitamente, il membro è nascosto e i consumatori non possono accedervi, a meno che il tipo non sia prima convertito nell'interfaccia. I membri implementati esplicitamente possono anche condividere lo stesso nome di altri membri del tipo, il che potrebbe creare conflitti tra i nomi di altri membri esportati.
public interface MyInterface
{
public int MyProperty { get; set; }
}
public class MyNode1 : Node, MyInterface
{
// The property can be exported because it implements the interface implicitly.
[Export]
public int MyProperty { get; set; }
}
public class MyNode2 : Node, MyInterface
{
// The property can't be exported because it implements the interface explicitly.
[Export]
int MyInterface.MyProperty { get; set; }
}
Come risolvere le violazioni
Per correggere una violazione di questa regola, implementare l'interfaccia implicitamente o rimuovere l'attributo [Export].
Quando sopprimere gli avvertimenti
Non sopprimere un avviso da questa regola. Non è possibile esportare le implementazioni esplicite delle proprietà di interfaccia, quindi saranno ignorate da Godot, causando errori in fase di esecuzione.