宿題に執着する人がいて、そのために別の目が必要です。課題は、生徒の名前を入力するように求めるプログラムを作成し、次に、String[] days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
毎日の学習時間数を求めるように、日の配列 ( ) を反復処理することです。最後に、プログラムは 1 週間の毎日の平均学習時間を表示します。
私はデータ入力方法にこだわっています:
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
は上記で、 と同じスコープで as をインスタンスString[]
化しました。SumHours は、パラメーターとして受け入れ、値を合計する配列を反復処理する別のメソッドです。hours
int[] hours;
days
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
as をインスタンス化しようとしましint[] hours = new int[7];
たが、同じエラーが発生するため、解析された整数を出力する方法に問題があると思われますが、問題を解決するためにそれ以上に何を見ればよいかわかりません。アイデア?ヒント?