J'ai une interface qui contient une propriété. J'ai besoin de définir la valeur par défaut pour cette propriété. Comment faire ça?. C'est aussi une bonne pratique d'avoir une valeur par défaut pour une propriété dans l'interface? ou ici en utilisant une classe abstraite à la place est une apt une? p>
3 Réponses :
Vous ne pouvez pas définir une valeur par défaut sur une propriété d'une interface.
Utilisez une classe abstraite en plus de l'interface (qui définit uniquement la valeur par défaut et ne met rien en œuvre d'autre): P> < Pré> xxx pré> p>
Petar, fait, utilise une classe abstraite en plus de l'interface signifie que je devrais changer l'interface en une classe abstraite?
Non, cela signifie utiliser une classe abstraite qui implémente l'interface puis l'étendre.
Interfaces ne contient aucune implémentation. Tout ce qu'ils font, c'est des signatures membres d'État. P>
Un implémentation em> d'une interface est libre d'avoir la valeur par défaut qu'elle aime pour toute propriété. P>
E.g. Une classe abstraite peut renvoyer une valeur par défaut pour l'une de ses propriétés. P>
La phrase "interfaces ne contient aucune implémentation". est maintenant invalide: docs.microsoft.com/en-us/dotnet/cshaarp/language-référence/...
Bien sûr, mais je ne vais pas revenir en arrière et mettre à jour les anciennes réponses. Ils ont des horodatages, de même que les versions ultérieures des langues, etc.
avec C # 8, les interfaces peuvent avoir une implémentation par défaut. https://devblogs.microsoft.com/dotnet/default-implementations-in- interfaces / p>