2014-10-27 59 views
0

我正在寫一個簡短的程序。我需要的是我想在Game.cs中設置「正確」參數,在我的advTry.cs中,我想使用這個「正確」參數來確定輸出。我的同班同學advTry.cs這樣的:從Game.cs獲取參數的類

public bool correct { get; set; } 

if (correct) 
{ 
    solveButton = new MenuButton(contentManager.Load<Texture2D>("solve"), 
     buttonCenter, GameState.AnswerNo); 
    Console.WriteLine("OK"); 
} 
else 
{ 
    solveButton2 = new MenuButton(contentManager.Load<Texture2D>("solve"), 
        buttonCenter, GameState.AnswerYes); 
    Console.WriteLine("Not OK"); 
} 

雖然我GAME.cs,我定義正確的,因爲:

if (messageString == "18") 
{ 
    Console.WriteLine("Main OK"); 
    advTry.correct = true; 
} 
else 
{ 
    advTry.correct = false; 
    Console.WriteLine("Main not OK"); 
} 

我使用Console.WriteLine命令來檢查布爾參數的傳遞「正確的」 。當結果本來是「不好」時,那麼當我開始輸入「18」時,首先發出「主要不好」,然後「主要確定」(易於理解,因爲輸入「1」然後是「8」) 。

但是,最大的問題是「OK」永遠不會出現,狀態「GameState.AnswerNo」無法實現,請問爲什麼?請問如何解決它?

+0

我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2014-10-27 23:14:39

+0

感謝提醒。將來會這樣做。 – 2014-10-28 13:24:00

回答

0

你的問題並不十分清楚。除了這兩個條件之外,您還沒有了解代碼的結構。現在回答是不可能的。不過,我最好從你在這裏寫的內容猜測,你已經在你的advTry類中將「correct」的值設置爲true,但是你沒有運行該類中的代碼來將OK輸出到控制檯。該代碼不會因爲您設置了「正確」的值而自動運行。您需要在advTry.cs中執行以下操作:

private bool _correct; 
public bool correct 
{ 
    get { return _correct; } 
    set 
    { 
     _correct = value; 
     output(); 
    } 
} 
private void output 
{ 
    if (_correct) 
    { 
     //output "OK" 
    } 
    else 
    { 
     //output "Not OK" 
    } 
} 
+0

或甚至使用SetCorrect(bool)方法,因爲setter除了設置變量(通常用於一次設置多個事物,否則根本不需要setter)之外不應該做任何事情。 – mcmonkey4eva 2014-10-27 23:08:00

+0

大家好。感謝您的回覆。對此感到抱歉。我需要的是我想在Game.cs中設置「正確」參數,在我的advTry.cs中,我想使用這個「正確」參數來確定輸出。請問,爲什麼很多人使用_correct,請將_放在前面? – 2014-10-28 13:29:08

+0

下劃線只是一個用來表示變量是私有的約定。所以你有一個公共屬性「正確」與一個getter和一個設置私有變量_correct的值的setter。你有沒有嘗試過這些代碼?如果您按照建議更改advTry.cs並將Game.cs保持原樣,您應該會看到您正在查找的輸出。 – 2014-10-28 22:11:10