私は今日、私が予期していなかった言語行動に出くわしました。今、私はその理由を知りたがっています。次の例を考えてみましょう。
try
{
worksheet.AddCell(row, cell++, image.DisplayCaption());
}
catch (NullReferenceException)
{
cell++;
throw;
}
私の例では、imageはnullであったため、この行はNullReferenceException;をスローしました。ただし、cellそれでもインクリメントされ、もちろん、catchブロックで再びインクリメントされました。最初のポストインクリメント操作が実行されたのはなぜですか?worksheetまた、 nullの場合は実行されたのでしょうか?
ありがとう、ピート