如何在C#中初始化默认值?

时间:2012-07-23 10:46:15

标签: c#

我希望crossover的布尔false具有默认值 我该如何初始化它?

public class DecisionBar
{
public DateTime bartime 
     { get; set; }
public string frequency
         { get; set; }
public bool HH7
        {get;set;}
public bool crossover
        {get;set;}
public double mfe
        {get;set;}
    public double mae
        {get;set;}
public double entryPointLong
        {get;set;}
public double entryPointShort
        {get;set;}


}

5 个答案:

答案 0 :(得分:3)

除了默认值为false之外,还有两个选项。显然它们是多余的,但是如果你想将默认值设置为true,你可以使用任何一种方法。

要么不使用自动实现的属性,而是使用支持属性;

private bool _crossover = false;

public bool crossover 
{
 get { return _crossover; }
 set { _crossover = value; }
}

或在构造函数中;

public DecisionBar() 
{
 crossover = false;
}

答案 1 :(得分:1)

任何bool的默认值都是false,所以在这种情况下你真的不需要做任何事情。

但是,如果您希望true成为默认值,则可以使用crossover的明确支持私有字段并将其初始化为true

private bool _co = true;
public bool crossover
{
   get { return _co; }
   set { _co = value; }
}

答案 2 :(得分:0)

布尔值的默认值为false。我不确定你的意思。

如果要明确设置它。把它放在课堂上。

private bool _crossover = false;

public bool crossover 
{
    get
    {
        return _crossover;
    }
    set
    {
        _crossover = value;
    }
}

答案 3 :(得分:0)

private bool _crossover = false;//or true
public bool Crossover {get {return _crossover;}set{_crossover =value;}}

答案 4 :(得分:0)

来自MSDN

The default value的{p> boolfalse; bool?变量的默认值为null。使用new运算符调用默认构造函数,如下所示:

var decisionBar = new DecisionBar();
var myBool = decisionBar.crossover; // 'myBool' should be 'false'

上述语句与以下语句具有相同的效果:

var decisionBar = new DecisionBar();
decisionBar.crossover = false; 

看这篇文章: How do you give a C# Auto-Property a default value?