昔の職場の同僚は、父親が道具について「それよりも賢くならなければならない」と言っていた。
以下のコードでは、Resharper が「割り当てられた値はどの実行パスでも使用されていません」(最初の行を指しています) と言っています。助けの申し出を受け入れると、dt には値 (「今日」) が割り当てられません。
これは、「私はそれよりも賢くなければならない」という警告を無視するケースですか、それともツールが私よりも賢いのに、私がそれを理解していないだけのケースですか?
私の状況に対する見方は、if ステートメントが失敗した場合、現在の日付 (私が望むデフォルト値) が返されるということですが、Resharper の「要求」に同意すると、Datetime のデフォルト値が返されます。これは、1776 年 7 月 4 日または 0000 年 1 月 1 日くらいのようなものだと思います。
DateTime dt = DateTime.Now;
if (!(DateTime.TryParse(substr, out dt))) {
using (var dtpDlgForm = new ReturnDate("Please select the Date that the file was created:")) {
if (dtpDlgForm.ShowDialog() == DialogResult.OK) {
dt = dtpDlgForm.ReturnVal;
}
}
}
return dt;