0

重複の可能性:
.NET の NullReferenceException とは?

HoursOfOperation というモデル (ASP.NET MVC 4、C#) があります。

public class HoursOfOperation
{
    public List<DayTimes> Monday { get; set; }
    public List<DayTimes> Tuesday { get; set; }
    public List<DayTimes> Wednesday { get; set; }
    public List<DayTimes> Thursday { get; set; }
    public List<DayTimes> Friday { get; set; }
    public List<DayTimes> Saturday { get; set; }
    public List<DayTimes> Sunday { get; set; }
}

そしてデイタイムズ

public class DayTimes
{
    public int Status { get; set; }
    public string From { get; set; }
    public string To { get; set; }
}

今、私は以下のように月曜日のエンティティに新しいセットを追加しようとしています:

var _vm = new HoursOfOperation();

_vm.Monday.Add(new DayTimes{
      From = day.From.ToString(),
      To = day.To.ToString(),
      Status = (int)day.Status
});

上記のステートメントが実行されるとすぐに、"Object reference not set to an instance of an object."例外が発生します

今、私はチェックしday.From.ToString()て、このステートメントが例外をスローした時点で"08:00:00"、day.To.ToString()"09:30:00"と day.Status を持っています。1

何か案は?

4

4 に答える 4

5

Mondayインスタンス化されていないためです。

次のようなことをする必要があります

_vm.Monday = new List<DayTimes>();

HoursOfOperationまたは、のコンストラクターですべてのインスタンス化を次のように行います。

public HoursOfOperation()
{
   Monday = new List<DayTimes>(),
   Tuesday = new List<DayTimes>(),
   Wednesday = new List<DayTimes>(),
   Thursday = new List<DayTimes>(),
   Friday = new List<DayTimes>(),
   Saturday = new List<DayTimes>(),
   Sunday = new List<DayTimes>()
};
于 2013-01-18T03:08:16.607 に答える
2

この時点でリストは null です。そう

_vm.Monday

..例外をスローします。newコンストラクターでそれらを作成する必要があります。

public HoursOfOperation() {
    Monday = new List<DayTimes>();
    // ...etc
}
于 2013-01-18T03:09:24.747 に答える
0

時刻のリストのインスタンスを作成する必要があります。

var hoursOfOperation = new HoursOfOperation
{
   Monday = new List<DayTimes>(),
   Tuesday = new List<DayTimes>(),
   Wednesday = new List<DayTimes>(),
   Thursday = new List<DayTimes>(),
   Friday = new List<DayTimes>(),
   Saturday = new List<DayTimes>(),
   Sunday = new List<DayTimes>()
};
于 2013-01-18T03:09:46.760 に答える
0

さまざまな List プロパティが初期化されていません。追加する必要があります

_vm.Monday = new List<DayTime>();
于 2013-01-18T03:08:52.027 に答える