7
votes

C # Comment définir une valeur par défaut pour les propriétés automatiques?

J'ai une interface et une classe implémentant cette interface: xxx

maintenant, est-ce que c # autorise la valeur à avoir une valeur par défaut sans utiliser du champ de support?


1 commentaires

Voulez-vous dire pouvez-vous spécifier le par défaut. Dans cet exemple, la valeur de valeur par défaut à true?


6 Réponses :


2
votes

S'il n'y a rien derrière elle, il est par défaut de fausse, selon la documentation.

Toutefois, si vous voulez qu'il soit instancié avec une valeur initiale autre que faux , vous pouvez faire cela de cette façon: xxx


2 commentaires

Je voulais dire, comme, par exemple pour la définir sur vrai .


@Yippie no, c # ne vous permet pas de le faire. Si vous voulez avoir une valeur initiale sans champ de support, vous devez la définir dans le constructeur.



0
votes

Par défaut valeur serait false mais il peut être initialisé dans le constructeur.


0 commentaires

15
votes

mise à jour forte>

à partir de C # 6 (VS2015) Cette syntaxe est parfaitement valide p> xxx pré>

comme définit une valeur pour une propriété réadonnée P>

public bool Value { get; set; } = true;


4 commentaires

Quand j'ai vu pour la première fois cet échantillon de code, je pensais "aucune façon! Tu peux faire ça ?!"


Pensez effectivement que cette réponse doit être mise à jour car à compter du C # 6, ceci est valide !! (Hourra!)


@ Moo-Juice merci Oh Milky One! J'ai mis à jour la réponse :)


@BinyWorrier, je pense que vous méritez un badge pour obtenir la syntaxe à droite une demi-décennie à l'avance :)



0
votes

Vous ne pouvez pas définir valeur à une autre valeur par défaut que la valeur par défaut du type de données lui-même sur la propriété. Vous devez attribuer la valeur par défaut dans le constructeur de quel que soit .


0 commentaires

1
votes

La valeur par défaut en ce moment est maintenant false . Pour ce faire true , définissez-le dans le constructeur. xxx


0 commentaires

0
votes

Vous pouvez définir une valeur par défaut dans le constructeur.

//constructor
public Whatever()
{
   Value = true;
}

public bool Value { get; set; }


0 commentaires