C# 为什么它不跳进if语句?超宽带

C# 为什么它不跳进if语句?超宽带,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我有一个刽子手游戏,我有问题。当用户点击字母表按钮时,它不会跳进代码中的if语句。“Current”变量是一个字符串,按钮内容是一个字母,我想知道猜测词是否包含用户单击的字母。即使我调试了该代码,我也不会在该猜测方法中获得“current”变量(猜测词)。谢谢大家 public sealed partial class Hangman : Page { private string[] words; private int WrongGuesses = 0; pr

我有一个刽子手游戏,我有问题。当用户点击字母表按钮时,它不会跳进代码中的if语句。“Current”变量是一个字符串,按钮内容是一个字母,我想知道猜测词是否包含用户单击的字母。即使我调试了该代码,我也不会在该猜测方法中获得“current”变量(猜测词)。谢谢大家

    public sealed partial class Hangman : Page
{
    private string[] words;
    private int WrongGuesses = 0;
    private string copyCurrent;
    private string current;
    public Hangman()
    {
        InitializeComponent();
        loadWords();
        DisplayTheWord();
        Hangman_OnLoaded();
    }

    private void loadWords()
    {
        string[] ReadWords = File.ReadAllLines("EnglishWords.txt");
        words = new string[ReadWords.Length];
    }
    private string[] images =
    {
        "/Assets/hang1.png", "/Assets/hang2.png", "/Assets/hang3.png",
        "/Assets/hang4.png", "/Assets/hang5.png"
    };

    public void PlayAgain_OnClick(object sender, RoutedEventArgs e)
    {
        WrongGuesses = 0;
        BitmapImage Hangman2 = new BitmapImage();
        Uri URL = new Uri(BaseUri, images[WrongGuesses]);
        Hangman2.UriSource = URL;
        picture.Source = Hangman2;
        string[] ReadWords = File.ReadAllLines("EnglishWords.txt");
        int NextNumber = new Random().Next(words.Length);
        copyCurrent = "";
        for (int i = 0; i < ReadWords[NextNumber].Length; i++)
        {
            copyCurrent += "_" + "   ";
        }
        CopiedWord.Text = copyCurrent;
    }

    public void DisplayTheWord()
    {
        WrongGuesses = 0;
        BitmapImage Hangman2 = new BitmapImage();
        Uri URL = new Uri(BaseUri, images[WrongGuesses]);
        Hangman2.UriSource = URL;
        picture.Source = Hangman2;
        string[] ReadWords = File.ReadAllLines("EnglishWords.txt");   
        int NextNumber = new Random().Next(words.Length);             
        copyCurrent = ""; 
        current = ReadWords[NextNumber];                          

        for (int i = 0; i < ReadWords[NextNumber].Length; i++)
        {
            copyCurrent += "_" + "   ";                            
        }
        CopiedWord.Text = copyCurrent;                            
    }
    public void Hangman_OnLoaded()
    {
        const int btnSize = 35;                                  
        var c = 0;                                               
        for (var i = 65; i <= 90; i++)                           
        {
            var btn = new Button {                              
                Content = (char) i,                              
            };                                                    
            btn.Width = btn.Height = btnSize;                    
            var margin = btn.Margin;                              
            margin.Left = c += 37;                                
            btn.Margin = margin;                                 
            GridMain.Children.Add(btn);                          
            btn.Click += Guessing;                               
        }

    }
    private void Guessing(object sender, RoutedEventArgs e)
    {
        Button choice = sender as Button;
        var ltr = choice.Content.ToString();
        if (current.Contains(ltr))                              // it wont jump into this if sentence                 
        {
                char[] temp = copyCurrent.ToCharArray();           
                char[] find = current.ToCharArray();               
                char guessChar = ltr.ElementAt(0);                 
            for (int index = 0; index < find.Length; index++)      
                {                                                  
                    if (find[index]== guessChar)                   
                    {                                              
                        temp[index] = guessChar;                   
                    }                                              
                }                                                  
                copyCurrent = new string(temp);                   
            }
            else
            {
                WrongGuesses++;                                    
            }
            if (WrongGuesses < 6)
            {
                //picture.Source = muudab pilti
            }
public sealed部分类刽子手:第页
{
私有字符串[]字;
私有int错误猜测=0;
私有字符串copyCurrent;
私有串电流;
公众刽子手()
{
初始化组件();
loadWords();
显示单词();
绞刑架已装好();
}
私有void loadWords()
{
string[]ReadWords=File.ReadAllLines(“EnglishWords.txt”);
words=新字符串[ReadWords.Length];
}
私有字符串[]图像=
{
“/Assets/hang1.png”、“/Assets/hang2.png”、“/Assets/hang3.png”,
“/Assets/hang4.png”、“/Assets/hang5.png”
};
public void playreach\u OnClick(对象发送方,路由目标)
{
错误猜测=0;
BitmapImage Hangman 2=新的BitmapImage();
Uri URL=新Uri(BaseUri,图像[错误猜测]);
Hangman2.UriSource=URL;
图片来源=刽子手2;
string[]ReadWords=File.ReadAllLines(“EnglishWords.txt”);
int NextNumber=new Random().Next(words.Length);
copyCurrent=“”;
for(int i=0;i
没有跳转是因为您的
当前
变量为空,或者它不包含您给出的
Itr


我得到了ltr的值,但没有得到当前值


我已经测试了你的代码获取
current
值,代码本身没有问题。但是
current
是从
EnglishWords.txt
的随机行中获取的字符串,如果随机行没有内容,它将不包含任何内容。因此,请检查文本文件是否有空行以及结果
current=ReadWords[NextNumber];

如果你调试了这段代码,那么你应该知道ltr和current的值是多少。所以问问你自己,在哪一点上事情没有按照你的预期发展我得到了ltr的值,但我没有得到当前值。