2012-07-23 71 views
1

我想要一個布爾值的默認值crossoverfalse
我該如何初始化它?如何初始化C#中的默認值?

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;} 


} 
+0

取決於你正在努力達到什麼。你可以把它放在構造函數中並初始化。但是對象總是必須被實例化以設置值。你想達到什麼目的? – 2012-07-23 10:48:47

+0

嘗試閱讀有關構造函數。 public DecisionBar(){crossover = false; } – Independent 2012-07-23 10:49:18

+0

請看看:** http://msdn.microsoft.com/en-us/library/ace5hbzh%28v=vs.71%29.aspx** – 2012-07-23 10:50:03

回答

3
的事實,默認值是

除了假,有兩種選擇。顯然它們是多餘的,但是如果你想讓默認值爲true,你可以使用任何一種方法。

要麼不使用自動實現的屬性,而要使用支持屬性;

private bool _crossover = false; 

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

或在構造函數中;

public DecisionBar() 
{ 
crossover = false; 
} 
1

任何bool的默認值是false,所以你真的不需要在這種情況下,做任何事情。

但是,如果你想true爲默認值,你可以有crossover明確支持私有字段並初始化爲true

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

布爾值的默認值是false。我不確定你在這裏的意思。

如果您想明確設置。把這個放在課堂上。

private bool _crossover = false; 

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

MSDN

boolThe default valuefalse; 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?