我有一个家庭作业的坚持者,我需要另一套眼睛。这项任务是创建一个提示输入学生姓名的程序,然后遍历数天(String[] days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
),提示每天学习几个小时。最后,该计划将显示本周研究的每日平均小时数。我可以使用tryParse输出参数在for循环中填充数组吗?
我卡与数据输入方法:
public void EnterHours()
{
// entry area header
Console.WriteLine("Enter study hours for {0} ", name);
for (int i = 0; i < days.Length; i++)
{
Console.Write("{0}'s study hours: ", days[i]);
string dailyHours = Console.ReadLine();
int.TryParse(dailyHours, out hours[i]); // problematic statement
}
SumHours(hours);
}
目前,name
变量是一个已经被设置的属性; days
是上面的String[]
,并且我已经将hours
例示为int[] hours;
,其范围与days
相同。 SumHours是另一种接受int[] hours
作为参数的方法,并对数组进行迭加求和。
当我运行程序,控制台显示
Enter study hours for John Doe
Sunday's study hours:
但无论怎样我进去,我结束了一个Null Reference Exception
。我还得到以下警告消息:
Warning 1 Field 'Midterm.StudentHour.hours' is never assigned to, and will always have its default value null C:\Users\Dan\Dropbox\_MATC\ITDEV115\Assignments\Midterm\StudentHour.cs 11 15 Midterm
我试过实例hours
为int[] hours = new int[7];
,但得到了同样的错误,所以我怀疑它的东西与我输出解析整数的方式,但我除了解决问题之外,我不知道要看什么。想法?提示?
没有检查其结果就没有意义使用TryParse。你不知道解析是否成功。 –
您能否提供更多详细信息,例如您用于初始化'StudentHour'类,'StudentHour'类构造函数的代码? –
赋值给数组单元的问题可以通过引入临时变量来解决。 –