J'ai besoin d'une valeur de valeur par défaut et de nombreuses pages différentes d'accès et de mise à jour..Initive, puis-je définir la valeur par défaut dans le constructeur de classe comme celui-ci? Quelle est la bonne façon de le faire en C # .NET?
3 Réponses :
Non, vous devriez entourer la mission à la propriété avec un constructeur statique réel em> comme: Remarque: un constructeur statique ne peut pas être déclaré privé / public et ne peut pas avoir de paramètres. p> p>
Vous êtes presque là-bas, il vous suffit d'utiliser un constructeur. a>
C'est un constructeur instance i>.
Cela ne fonctionnera pas - maintenant à chaque fois que vous créez un renvers code> instance
hiprofit code> est défini sur sa valeur par défaut.
@Henk - oui c'est; Je pensais que c'est ce que l'OP demandait? @Brokenglass - Compte tenu de la déclaration de l'OP "J'ai besoin d'une valeur de valeur par défaut", pourquoi est-ce une implémentation de casse?
@ 48KLO, pouvez-vous penser à un scénario pour une propriété statique (partagée) réinitialisée par chaque instance?
Les valeurs par défaut ne sont définies que jusqu'à ce que sa modification. Mais il ne doit pas être réinitialisé lorsque la classe est accessible.
Ok, je suis lent - je viens de remarquer que les mots-clés statiques montaient partout sur la place là-bas maintenant. Dans mon exemple, la valeur par défaut ne changerait pas quand elle est simplement accessible, mais elle changerait lors de la construction d'une nouvelle instance (qui le rend toujours dangereux pour votre cas d'utilisation).
Vous pouvez le mettre dans la déclaration: Double _hiprofit statique privé = 0,09; code>
Ou si c'est une initialisation plus compliquée, vous pouvez le faire dans le constructeur statique:
private static double _hiprofit;
static ProfitVals()
{
_hiprofit = 0.09;
}
Pourquoi ne pas simplement le faire dans la déclaration: DoubleROfit Static privé = 0.09D;
Est-ce le meilleur moyen de le faire ?? ça me va bien.
Il est préféré personnel IMO, les deux sont des approches viables
Il y a des implications de performance.