2017-02-09 51 views
0

我发送一个单词到我的争夺方法,返回加扰的单词,但当我尝试输出单词时,我得到System.Char []。我看到另一个类似于我的线程,但他使用了.ToCharArray和.ToString,这是他的问题,我无法从中找出它。这是C#,我仍在学习。我不想要答案。我想知道我在做什么错误,并提出解决问题的建议。 (我不知道为什么for循环显示这种方式)当试图从另一个方法输出扰码时,我得到System.Char []

namespace Farmer_JumbleApp 
{ 

//Author: Aaron Farmer 
class Jumble 
{ 
    string hiddenWord = "";//chosen word from array 
    string[] words = new string[] { "sauce", "iphone", "tick", "time", "think", "dream", "awake" }; 
    Random randy = new Random(); 

    string display = " "; 

    public Jumble() 
    { } 

    public void Master() 
    { 

    UIJumble Graphics = new UIJumble(); 
    Admin Info = new Admin(); 

     string userGuess = " ";   
     int randNum = 0; 
     int quit; 
     bool cont = true;//Loop condition 
     char[] scrambledWord = new char[] { };//Scrambled word 


     randNum = randy.Next(words.Length); 
     hiddenWord = words[randNum]; 
     scrambledWord = Scramble(hiddenWord); 

     while (cont) 
     { 
      display = "The Scrambled Word is: "; 
      Graphics.DisplayOnLine(display); 

      for (int i = 0; i < scrambledWord.Length; i++) 
      { 
       display = "" + scrambledWord; 
       Graphics.DisplayOnLine(display); 
      } 

      //display = " "; 
      //Graphics.DisplayString(display); 

      display = "\n\n\nEnter your guess: "; 
      Graphics.DisplayOnLine(display); 

      userGuess = Graphics.RecieveString(); 

      if (userGuess == hiddenWord) 
      { 
       Graphics.CleanUp(); 
       Info.MyInfo(); 
       display = "You are correct"; 
       Graphics.DisplayString(display); 

      }//end of if 


      else if (userGuess != hiddenWord) 
      { 
       display = "Sorry, You are Incorrect"; 
       Graphics.DisplayString(display); 
      }//end of else if 


      display = "Would you like to quit?\n1. Yes\n2. No"; 
      Graphics.DisplayString(display); 
      quit = Graphics.RecieveInt(); 

      if (quit == 1) 
      { 
       cont = false; 
      } 



     }//End of While_Loop 
     display = "Hope you enjoyed"; 
     Graphics.DisplayString(display); 
     Environment.Exit(0); 
    }//End of Master Method 

---------------------- -------下一页方法--------------------

public char[] Scramble(string word) 
    { 

     int randNum = 0; 
     int random; 
     char temp; 



     randNum = randy.Next(words.Length); 
     hiddenWord = words[randNum]; 

     var displayWord = new char[word.Length]; //initializing array 
     for (int i = 0; i < word.Length; i++) 
      { 
       do 
        random = randy.Next(word.Length); 
       while (displayWord[random] != 0); 
       temp = word[i]; 
       displayWord[random] = temp; 
      } 


     return displayWord; 
    }//End of Scramble Method 


}//End of Class 
}//End of Namespace 
+0

你应该争夺返回一个字符串。 '返回新字符串(displayword)' – pm100

回答

2
for (int i = 0; i < scrambledWord.Length; i++) 
{ 
    display = "" + scrambledWord; 
    Graphics.DisplayOnLine(display); 
} 

for (int i = 0; i < scrambledWord.Length; i++) 
{ 
    display = "" + scrambledWord[i]; 
    Graphics.DisplayOnLine(display); 
} 

被替换如"" + scrambledWord将使用scrambledWord.ToString(),其返回System.Char[](其类型名称)

OR

不久说,作为Joel Coehoorn曾建议:

Graphics.DisplayOnLine(new String(scrambledWord)); 
+0

或者更好:'display = new String(scrambledWord);' –

+0

@JoelCoehoorn - 这是正确的。 – Alexei

相关问题