0

我正在嘗試製作一個潛在的兩個玩家程序,其中一個用戶提示輸入一個問題,然後提示輸入對該問題的答案,這兩個問題都將存儲在一個二維數組中。第一位玩家最多可以輸入10個問題。在存儲問題和答案後,我希望能夠讓第二個玩家回答第一個玩家問的問題。C#在字符串數組中存儲用戶輸入

現在,我被困在一個非常基本的部分,它將問題和答案存儲在數組中。

這裏是我迄今爲止我的第一類代碼:

class MakeOwnQuestion 
{ 
    string question; 
    string answer; 
    string[,] makequestion = new string[10, 2]; 

    public void MakeQuestion(string question, string answer, int index) 
    { 
     if (index < makequestion.Length) 
     { 
      makequestion[index, 0] = question; 
      makequestion[index, 1] = answer; 
     } 
    } 

我的第二類:

class MakeOwnQuestionUI 
{ 
    MakeOwnQuestion newquestion; 

    public void MainMethod() 
    { 
     PopulateArray(); 
    } 

    void PopulateArray() 
    { 
     string question; 
     string answer; 
     Console.WriteLine("Enter Your Question: "); 
     question = Console.ReadLine(); 

     Console.WriteLine("Enter Your Answer: "); 
     answer = Console.ReadLine(); 

     newquestion.MakeQuestion(question, answer, 0); 

     Console.WriteLine("Enter Your Question: "); 
     question = Console.ReadLine(); 

     Console.WriteLine("Enter Your Answer: "); 
     answer = Console.ReadLine(); 

     newquestion.MakeQuestion(question, answer, 1); 
    } 
} 

我把用戶輸入他們的第一個答案後,得到相同的錯誤消息 「對象引用未設置爲對象實例「

回答

7

您需要初始化您的newquestion實例:

MakeOwnQuestion newquestion = new MakeOwnQuestion(); 

我也建議你使用而不是Length一個多維數組:

if (index < makequestion.GetLength(0)) 
{ 
    ... 
} 

或者更好的是,僅僅是某種類型的,例如List<T>Tuple<string, string>

class MakeOwnQuestion 
{ 
    List<Tuple<string, string>> makequestion = new List<Tuple<string, string>>(); 

    public void MakeQuestion(string question, string answer, int index) 
    { 
     makequestion.Add(Tuple.Create(question, answer)); 
    } 
} 
+0

謝謝,這是非常有用的,它的工作!我想我會繼續使用多維數組,因爲這是我熟悉的,但我會做一些練習程序與列表類 – user2908363

+0

@ user2908363很高興我能幫上忙。如果您有任何其他問題可以隨時詢問SO。快樂編碼:) –

相關問題