2017-05-29 41 views
0

我工作的「劊子手」的遊戲按鈕值。儘管當我試着去理解來檢查,如果該值匹配所選單詞我看到在調試器窗口此錯誤和CheckLetter_Click裏面的VAR BTN不會得到任何價值可言的一個字母的方法的按鈕的值調試: '檢索本地值的內部錯誤'。C#「內部錯誤檢索本地值」,而試圖獲得方法

什麼能與此problam?

private void CheckLetter_Click(object sender, RoutedEventArgs e) 
    { 
     var btn = sender as Button; 
     Mng.CheckLetter(btn); 
    } 

從遊戲管理器類CheckLetter方法:

TextBlock[] txtBlkArr = { tb1, tb2, tb3, tb4, tb5, tb6 }; 

public bool CheckLetter(Button btn) 
    { 
     foreach (var c in txtBlkArr) 
     { 
      if (btn.Content == c) 
      { 
       c.Visibility = Visibility.Visible; 
       //if (txtBlkArr[txtBlkArr.Length - 1].Visibility = Visibility.Visible) 
       //{ 
       // GameWon(); 
       //} 

      } 
      else 
      { 
       //StartHanging(); 
       WrongCounter++; 
       btn.IsEnabled = false; 
       //txtBlkUsedLetters += txtBlkArr[i]; 
       return false; 
      } 
     } 
     return true; 
    } 
+0

什麼錯誤?你還沒有添加它。另外,你必須添加'Mng'類的代碼。 – Gusman

+0

你是什麼意思「嘗試獲得按鈕的價值」?它是發送者作爲按鈕的位置嗎? –

+0

@Gusman我在問題標題中寫了錯誤。這是錯誤:「內部錯誤檢索本地值」 – Dolev

回答

0

在你CheckLetter方法Ç變量的類型的TextBlock的,你想它的價值與比較的值btn.Content其類型爲對象在這行代碼:

if (btn.Content == c) 

這就是問題的根源。您需要將比較值轉換爲相同類型(字符串或字符在您的情況下),如下所示:

if ((btn.Content as string) == c.Text) 
+0

我想這會解決我以後會遇到的問題,非常感謝!但是我對這個問題的當前問題是關於'btn'變量。它不會識別任何按鈕的值,我點擊並當我debbug我的程序,我看到我發佈的問題中的錯誤消息。 – Dolev