web-dev-qa-db-ja.com

ブール値のデフォルト値を変更する

私はアプリケーションを書いており、ブール型のプロパティがかなり多く定義されています:

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

ご覧のように、最初にkajmaktrueに設定しています。--理由は無関係です-。 (bool変数のdefault値がfalseであることをご存知かもしれません)。

さて、boolのデフォルト値をtrueに変更する方法はありますか?だから私は書くでしょう:

private bool kajmak; //kajmak = true

の代わりに

private bool kajmak = true;

これを達成するにはどうすればよいですか?

25
eMi

ブール値はデフォルトではfalseであるため、IsInitializedHasSomethingなど、明示的に設定するまでデフォルトでfalseにしたい正の形式を名前に使用します。

デフォルトでtrueにする必要がある場合は、変数の名前を変更して、デフォルトがfalseの場合に意味がわかるようにする必要があります。

24
Davio

C Sharp 6.0はこれを行うための素晴らしい新しい方法を導入しました:

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

これは、以下の古い方法と同等です。

    private bool _yourBool = true;

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

この記事を参照 http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

61
Adam Diament

運行中:

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

いいえ。NETによって割り当てられたデフォルト値を変更する方法はありません。あなたの最善の策は、プライベートメンバーに適切なデフォルトを割り当てることです:

private book kajmak = false;

または、あなたが想定しているようにコンストラクタを使用して、そこにクラスのデフォルトを割り当てます。

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

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

いいえ、デフォルト値を変更することはできません。デフォルト値を変更できれば、もうデフォルトではなくなります;)。

しかし、デフォルト値をnullに設定するには、これを使用できます。

bool? kajmak;

しかし、それはあなたが望むものではありません...

0
looper

同様のことをやろうとしている途中で、同僚が私をboolに啓発しましたか?タイプ。これは、true、false、またはnullのいずれかであり、そのようなコンパレーターの左側にあることに反対しません。これは、ブール値をデフォルトでtrueに設定する方法についての質問には答えませんが、デフォルトで変数をtrueとして定義可能にするという概念的な問題を解決します。

これは私が検索したときに最高の結果だったので投稿するだけで、この情報は私に役立ちました。うまくいけば、それはこのページを見つける他の人になるでしょう。

0
KGVT