1

我想要一个布尔值的默认值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;}


}
4

5 回答 5

3

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

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

private bool _crossover = false;

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

或在构造函数中;

public DecisionBar() 
{
 crossover = false;
}
于 2012-07-23T10:49:16.040 回答
1

any 的默认值boolfalse,所以在这种情况下你真的不需要做任何事情。

但是,如果您想true成为默认值,则可以有一个显式的支持私有字段crossover并将其初始化为true

private bool _co = true;
public bool crossover
{
   get { return _co; }
   set { _co = value; }
}
于 2012-07-23T10:47:54.263 回答
0

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

如果你想明确地设置它。把这个放在课堂上。

private bool _crossover = false;

public bool crossover 
{
    get
    {
        return _crossover;
    }
    set
    {
        _crossover = value;
    }
}
于 2012-07-23T10:49:33.280 回答
0
private bool _crossover = false;//or true
public bool Crossover {get {return _crossover;}set{_crossover =value;}}
于 2012-07-23T10:49:53.663 回答
0

来自MSDN

bool默认值为false; bool?变量的默认值为null。使用 new 运算符调用默认构造函数,如下所示:

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

前面的语句与下面的语句具有相同的效果:

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

请参阅这篇文章: 如何为 C# 自动属性赋予默认值?

于 2012-07-23T11:00:25.790 回答