Just because you've declared an array of QuestionUnit's, doesn't mean you've initialized its elements
while (line != null)
{
var q = new QuestionUnit();
q.Question = line;
line = thereader.ReadLine();
q.Answer = line;
line = thereader.ReadLine();
q.CorrectAnswer = line;
line = thereader.ReadLine();
q.Explanation = line;
m_Questions[counter] = q;
Note: you may be better off using File.ReadAllLines
and then looping through its elements with a for loop that increments by 4