私はOutOfMemoryException
を先に持っていて、何のためにそれを理解できませんでした。それはまったく意味がありませんでした。私のコードの周りを掘って、突然どこかでnullをチェックすることを忘れていたことを思い出しました。この特定のケースでは、それはまさにそのことでした。それは私の意見でOutOfMemoryException
を引き起こすべきではありませんが、私はもちろんこれを修正しました。そして、私がしたとき、例外はもう現れなかった!C#:NullReferenceExceptionでOutOfMemoryExceptionが発生するのはなぜですか?
私はもう一度チェックを外して例外を学びました。それはNullReferenceException
のInnerExceptionともちろん、スタックトレースを持っていることがわかりました。もちろん、をたくさん作ってより意味があります。
しかし、なぜ私はOutOfMemoryException
を取得しましたか?これは私には意味がありません前に... ...
は、いくつかのより多くのコンテキストを与えるのが大好きだが、実際にプロジェクト全体をアップロードすることなく、多くを語ることはできない、これI私に起こったことはありませんあなたはとにかく読むことを望まないでしょう:p)。しかし、それは起こった特定の場所は次のようになります。
{
foreach (var exportParameter in exportParameters)
{
// Copy to local
var ep = exportParameter;
// Load stored values from db
...
}
int i = 1;
exportParameters
.OrderBy(ø => ø.Sequence)
.ForEach(ø => { if (!ø.Locked) ø.Sequence = i++; });
}
修正プログラムは、コードブロックの前にif(exportParameters != null)
を置くことでした。 exportParameters
は、null
であった場合を除いて、List<ExportParameter>
です。
いくつかの追加のコンテキストなしに伝えるための方法はありません。 –