web-dev-qa-db-fra.com

Changer la valeur par défaut du booléen

J'écris une application, où j'ai pas mal de propriétés de type booléen définies:

    private bool kajmak = true;
    public bool Kajmak
    {
        get { return kajmak ; }
        set { kajmak = value; FirePropertyChanged(() => Kajmak); }
    }

Comme vous le voyez, je règle kajmak sur true au début ..- la raison n’est pas pertinente-. (Vous savez peut-être que la valeur default d'une variable bool est false ).

Y a-t-il moyen de changer la valeur par défaut de bool en true? Alors j'écrirais:

private bool kajmak; //kajmak = true

au lieu de

private bool kajmak = true;

Que pourrais-je faire pour y parvenir?

22
eMi

Comme les booléens sont faux par défaut, j'utilise des formes positives dans mes noms, telles que IsInitialized, HasSomething etc. que je veux être fausse par défaut jusqu'à ce que je les définisse explicitement.

Si vous estimez que quelque chose doit être vrai par défaut, vous devrez peut-être renommer votre variable afin que cela ait plus de sens lorsque la valeur par défaut est false.

22
Davio

C Sharp 6.0 a introduit une nouvelle manière agréable de faire cela: 

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

Ceci est équivalent à l'ancienne façon de:

    private bool _yourBool = true;

    public bool YourBool 
    {
        get { return _yourBool; }
        set { _yourBool = value; }
    }

voir cet article http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

46
Adam Diament

Non. Il n'y a aucun moyen de changer la valeur par défaut attribuée par .NET. Votre meilleur choix est d’affecter la valeur par défaut appropriée au membre privé:

private book kajmak = false;

Ou utilisez le constructeur comme vous êtes supposé et attribuez les classes par défaut:

public class SomeClass
{
    public SomeClass()
    {
        Kajmak = false;
    }

    public book Kajmak { get; set; }
}
4
Justin Niessner

En service: 

public bool Kajmak { get; set; } = true;
2
Alexandre Lima

Non, il n'y a aucune possibilité de changer la valeur par défaut. Si vous pouviez changer la valeur par défaut, ce ne serait plus la valeur par défaut;).

Mais pour définir la valeur par défaut sur null, vous pouvez utiliser ceci:

bool? kajmak;

Mais ce n'est pas ce que tu veux ...

0
looper

En train d'essayer de faire quelque chose de similaire, un collègue m'a éclairé sur le bool? type. Il peut être vrai, faux ou nul et ne s'oppose pas à être du côté gauche d'un tel comparateur. Cela ne répond pas à votre question sur la méthode par défaut bool to true, mais résout votre problème conceptuel consistant à vouloir que vos variables puissent être définies comme true par défaut.

Je poste uniquement parce que c’était le meilleur résultat lors de ma recherche et que cette information m’était utile. J'espère que ce sera à d'autres qui trouveront cette page.

0
KGVT