我正在编写一些逻辑,如果它不为null或者它将获得最小值,它将获得对象的开始日期。
$photos = array(
"karate" => array("1","2"),
"judo" => array("1","2"),
"kickboxing" => array("1","2"),
"womenselfdefense" => array("1","2")
);
$sections = array("karate","judo","kickboxing","womenselfdefense");
foreach($sections as $keys => $section)
{
echo count($photos[$section]).'<br>';
}
Resharper正在生成一个警告,表明操作数永远不会为空:
如果场景中的前一个类别为null,那么如何不将左手操作数设置为null或者这只是resharper中的错误?
修改
使用DateTime验证示例
var statusStartDate = ((DateTime?)previousCategory?.StartDate) ?? DateTime.MinValue;
答案 0 :(得分:0)
如果您运行测试对象:
public class Test
{
public DateTime startDate;
}
void main()
{
var t = new test();
var time=t.startDate
}
时间变量不为空且具有“{1/1/0001 12:00:00}”值 这就是resharper发出警告的原因。 在某些情况下,对于列表上的FirstOrDefault(x =&gt; x ...),可能有null结果,您可以使用您的代码而不会发出任何警告
更新:在第二届Senario中,Resharper犯了错误,因为:
var check = ((DateTime?) tmp?.startDate).HasValue;// false , startDate is null