我有一个组合框,其中包含日期列表。我想确保用户实际选择了一个日期。所以,我有以下内容:
if (cmbDateSelecter.SelectedItem.ToString().ToLower().Contains("select") ||
cmbDateSelecter.SelectedItem.ToString().ToLower().Contains("seleccione") ||
cmbDateSelecter.SelectedItem == null)
默认项目是“选择日期”,所以我正在检查这是否是所选项目。这曾经是自己工作的,出于某种我还没有弄清楚的原因,开始抛出 NullReferenceExceptions。所以,我添加了空检查。但是,我仍然遇到异常。但如果我这样做:
if(cmbDateSelecter.SelectedItem == null)
现在,我知道我可以先进行空检查,一切都会变得很糟糕。我的问题是为什么它在抛出异常之前不评估所有表达式?如果其中一个是真的,在我的表达式的情况下(作为空检查),为什么它仍然会抛出异常?