更改布尔值的默认值

时间:2012-11-09 14:58:50

标签: c# boolean default

我正在编写一个应用程序,其中我定义了很多类型为Boolean的属性:

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

如您所见,我在开始时将kajmak设置为true ..原因是无关紧要的 - 。 (您可能知道bool变量的默认值为 false )。

现在,有没有办法将bool的默认值更改为true?所以我会写:

private bool kajmak; //kajmak = true

而不是

private bool kajmak = true;

我能做些什么来实现这个目标?

7 个答案:

答案 0 :(得分:50)

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

答案 1 :(得分:22)

因为默认情况下布尔值是假的,所以我在我的名字中使用了正面形式,例如IsInitializedHasSomething等。默认情况下,我希望它是假的,直到我明确设置它们为止。

如果您发现默认情况下需要某些内容,可能需要重命名变量,以便在默认值为false时更有意义。

答案 2 :(得分:4)

没有。无法更改.NET分配的默认值。最好的办法是在私有成员中指定适当的默认值:

private book kajmak = false;

或者像你一样使用构造函数并在那里分配类默认值:

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

    public book Kajmak { get; set; }
}

答案 3 :(得分:2)

在服务中:

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

答案 4 :(得分:0)

不,不可能更改默认值。如果你可以改变默认值,它将不再是默认值;)。

但是要将default-value设置为null,您可以使用:

bool? kajmak;

但那不是你想要的......

答案 5 :(得分:0)

在尝试做类似的事情的过程中,一位同事开明了我对布尔的看法?类型。它可以是true,false或null,并且不反对位于这样的比较器的左侧。这并没有回答你如何将bool默认为true的问题,但确实解决了你希望你的变量默认为真的概念问题。

我只发帖,因为这是我搜索时的最佳结果,这些信息对我有帮助。希望有人能找到这个页面。

答案 6 :(得分:-2)

您可以创建一个默认为false的myBool类,以及从bool到您的类的隐式转换。