2011-10-09 78 views
1

我有一個設置爲false被宣佈時,布爾,布爾變量沒有得到設置爲true C#

public bool row1 = false; 

然而,當我爲了布爾設置爲true運行一些代碼,這不是」噸似乎工作呢,

if (currentBox.BackColor == cardColour) 
{ 
    MessageBox.Show("Please Draw a Card."); 
} 
else if (currentBox.BackColor != cardColour) 
{ 
    row = true; 
} 

上面的代碼是一個被在PictureBox鼠標點擊事件的方法被調用(在調用方法時使用ROW1中的參數)方法的方法主體。在目前的狀態下,它應該將它設置爲true時表示它是錯誤的。

這是調用該方法的代碼。

private void rowOne_MouseClick(object sender, MouseEventArgs e) 
{ 
    AllowTake(row1, currentCardPictureBox, Color.White, sender, e); 
} 

感謝您的幫助。

回答

2

您應該通過參考row參考:row1是一個單獨的局部變量,其值不在方法外使用。

void MakeTrue(bool flag) { 
    flag = true; 
} 

//Calling code: 
bool myFlag = false; 
MakeTrue(myFlag); 

MakeTrue後稱爲myFlag值不會改變。它的值用於初始化MakeTrue方法中的flag參數,就是這樣。之後,無論你做什麼flag都不會影響myFlag的值。現在

,如果你這樣做:

void MakeTrue(ref bool flag) { 
    flag = true; 
} 

//Calling code: 
bool myFlag = false; 
MakeTrue(ref myFlag); 

你會得到想要的(你的情況)的行爲:flag將只是一個別名myFlag變量,不管你分配給它會成爲值爲myFlag

一些鏈接閱讀:

+0

感謝隊友,工作:) – Ari

+0

@happyguy:沒問題 – Dyppl