操作数永不停止警告

时间:2016-12-23 17:35:56

标签: c# resharper resharper-9.0

我正在编写一些逻辑,如果它不为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正在生成一个警告,表明操作数永远不会为空:

enter image description here

如果场景中的前一个类别为nu​​ll,那么如何不将左手操作数设置为null或者这只是resharper中的错误?

修改

使用DateTime验证示例

var statusStartDate = ((DateTime?)previousCategory?.StartDate) ?? DateTime.MinValue;

1 个答案:

答案 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结果,您可以使用您的代码而不会发出任何警告

enter image description here

更新:在第二届Senario中,Resharper犯了错误,因为:

var check = ((DateTime?) tmp?.startDate).HasValue;// false , startDate is null